永发信息网

有关于SQL数据库的问题

答案:5  悬赏:50  手机版
解决时间 2021-06-01 19:15
  • 提问者网友:夢醒日落
  • 2021-05-31 21:50

如题:

使用企业管理器工具建立数据库和表,对表进行数据据的增加、修改、删除和查询操作,数据库的备份及恢复,编写存储过程与触发器。

1、创建名为marketing的数据库,并在该库中创建如图所示的所有表,并且要求表之间的关系也如图所示。并给每个表中添加至少五条记录。

2、建立一个名为­sp_findcustomers的存储过程,以客户名作为输入参数。如果找到了指定的客户,则显示该客户的信息并用return语句返回1,否则返回0。

3、创建一个名为check_custno的更新触发器,当用户修改客户的“编号”列时,给出提示信息,并不能修改该列。

4、备份上述操作后的数据库,并进行还原。

最佳答案
  • 五星知识达人网友:行雁书
  • 2021-05-31 22:36

---以下语句完成1-3小题。


CREATE DATABASE [marketing] ON (NAME = N'marketing_Data', FILENAME = N'C:\marketing_Data.MDF' , SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'marketing_Log', FILENAME = N'C:\marketing_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)
COLLATE Chinese_PRC_CI_AS
GO


exec sp_dboption N'marketing', N'autoclose', N'false'
GO


exec sp_dboption N'marketing', N'bulkcopy', N'false'
GO


exec sp_dboption N'marketing', N'trunc. log', N'false'
GO


exec sp_dboption N'marketing', N'torn page detection', N'true'
GO


exec sp_dboption N'marketing', N'read only', N'false'
GO


exec sp_dboption N'marketing', N'dbo use', N'false'
GO


exec sp_dboption N'marketing', N'single', N'false'
GO


exec sp_dboption N'marketing', N'autoshrink', N'false'
GO


exec sp_dboption N'marketing', N'ANSI null default', N'false'
GO


exec sp_dboption N'marketing', N'recursive triggers', N'false'
GO


exec sp_dboption N'marketing', N'ANSI nulls', N'false'
GO


exec sp_dboption N'marketing', N'concat null yields null', N'false'
GO


exec sp_dboption N'marketing', N'cursor close on commit', N'false'
GO


exec sp_dboption N'marketing', N'default to local cursor', N'false'
GO


exec sp_dboption N'marketing', N'quoted identifier', N'false'
GO


exec sp_dboption N'marketing', N'ANSI warnings', N'false'
GO


exec sp_dboption N'marketing', N'auto create statistics', N'true'
GO


exec sp_dboption N'marketing', N'auto update statistics', N'true'
GO


use [marketing]
GO


CREATE TABLE [dbo].[供应商信息] (
[编码] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[名称] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[联系人] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[地址] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[电话] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO


CREATE TABLE [dbo].[客户信息] (
[编号] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[地址] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[电话] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO


CREATE TABLE [dbo].[订单信息] (
[订单号] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[销售工号] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[货品编码] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[客户编号] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[数量] [float] NULL ,
[总金额] [float] NULL ,
[订货日期] [datetime] NULL ,
[交货日期] [datetime] NULL
) ON [PRIMARY]
GO


CREATE TABLE [dbo].[货品信息] (
[编码] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[名称] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[库存量] [float] NULL ,
[供应商编码] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[状态] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[售价] [float] NULL ,
[成本价] [float] NULL
) ON [PRIMARY]
GO


CREATE TABLE [dbo].[部门信息] (
[编号] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[名称] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[经理] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[人数] [int] NULL
) ON [PRIMARY]
GO


CREATE TABLE [dbo].[销售人员] (
[工号] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[部门号] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[姓名] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[地址] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[电话] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[性别] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO


ALTER TABLE [dbo].[供应商信息] WITH NOCHECK ADD
CONSTRAINT [PK_供应商信息] PRIMARY KEY CLUSTERED
(
[编码]
) ON [PRIMARY]
GO


ALTER TABLE [dbo].[客户信息] WITH NOCHECK ADD
CONSTRAINT [PK_客户信息] PRIMARY KEY CLUSTERED
(
[编号]
) ON [PRIMARY]
GO


ALTER TABLE [dbo].[订单信息] WITH NOCHECK ADD
CONSTRAINT [PK_订单信息] PRIMARY KEY CLUSTERED
(
[订单号]
) ON [PRIMARY]
GO


ALTER TABLE [dbo].[货品信息] WITH NOCHECK ADD
CONSTRAINT [PK_货品信息] PRIMARY KEY CLUSTERED
(
[编码]
) ON [PRIMARY]
GO


ALTER TABLE [dbo].[部门信息] WITH NOCHECK ADD
CONSTRAINT [PK_部门信息] PRIMARY KEY CLUSTERED
(
[编号]
) ON [PRIMARY]
GO


ALTER TABLE [dbo].[销售人员] WITH NOCHECK ADD
CONSTRAINT [PK_销售人员] PRIMARY KEY CLUSTERED
(
[工号]
) ON [PRIMARY]
GO


ALTER TABLE [dbo].[订单信息] ADD
CONSTRAINT [FK_订单信息_货品信息] FOREIGN KEY
(
[货品编码]
) REFERENCES [dbo].[货品信息] (
[编码]
) ON UPDATE CASCADE ,
CONSTRAINT [FK_订单信息_客户信息] FOREIGN KEY
(
[客户编号]
) REFERENCES [dbo].[客户信息] (
[编号]
) ON UPDATE CASCADE ,
CONSTRAINT [FK_订单信息_销售人员] FOREIGN KEY
(
[销售工号]
) REFERENCES [dbo].[销售人员] (
[工号]
) ON UPDATE CASCADE
GO


ALTER TABLE [dbo].[货品信息] ADD
CONSTRAINT [FK_货品信息_供应商信息] FOREIGN KEY
(
[供应商编码]
) REFERENCES [dbo].[供应商信息] (
[编码]
) ON UPDATE CASCADE
GO


ALTER TABLE [dbo].[销售人员] ADD
CONSTRAINT [FK_销售人员_部门信息] FOREIGN KEY
(
[部门号]
) REFERENCES [dbo].[部门信息] (
[编号]
) ON UPDATE CASCADE
GO


SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


INSERT INTO 供应商信息
(编码, 名称, 联系人, 地址, 电话)
VALUES ('01', 'A1', 'L1', 'D1', 'T1')


GO
INSERT INTO 供应商信息
(编码, 名称, 联系人, 地址, 电话)
VALUES ('02', 'A2', 'L2', 'D2', 'T2')


GO
INSERT INTO 供应商信息
(编码, 名称, 联系人, 地址, 电话)
VALUES ('03', 'A3', 'L3', 'D3', 'T3')


GO
INSERT INTO 供应商信息
(编码, 名称, 联系人, 地址, 电话)
VALUES ('04', 'A4', 'L4', 'D4', 'T4')


GO
INSERT INTO 供应商信息
(编码, 名称, 联系人, 地址, 电话)
VALUES ('05', 'A5', 'L5', 'D5', 'T5')


GO
INSERT INTO 客户信息
(编号, 姓名, 地址, 电话)
VALUES ('C01', 'CM1', 'CD1', 'CT1')
GO
INSERT INTO 客户信息
(编号, 姓名, 地址, 电话)
VALUES ('C02', 'CM2', 'CD2', 'CT2')
GO
INSERT INTO 客户信息
(编号, 姓名, 地址, 电话)
VALUES ('C03', 'CM3', 'CD3', 'CT3')
GO
INSERT INTO 客户信息
(编号, 姓名, 地址, 电话)
VALUES ('C04', 'CM4', 'CD4', 'CT4')
GO
INSERT INTO 客户信息
(编号, 姓名, 地址, 电话)
VALUES ('C05', 'CM5', 'CD5', 'CT5')
GO
INSERT INTO 部门信息
(编号, 名称, 经理, 人数)
VALUES ('01', 'M1', 'B1', 5)
GO
INSERT INTO 部门信息
(编号, 名称, 经理, 人数)
VALUES ('02', 'M2', 'B2', 5)
GO
INSERT INTO 部门信息
(编号, 名称, 经理, 人数)
VALUES ('03', 'M3', 'B3', 5)
GO
INSERT INTO 部门信息
(编号, 名称, 经理, 人数)
VALUES ('04', 'M4', 'B4', 5)
GO
INSERT INTO 部门信息
(编号, 名称, 经理, 人数)
VALUES ('05', 'M5', 'B5', 5)
GO
INSERT INTO 销售人员
(工号, 部门号, 姓名, 地址, 电话, 性别)
VALUES ('01', '01', 'M1', 'D1', 'T1', '男')
GO
INSERT INTO 销售人员
(工号, 部门号, 姓名, 地址, 电话, 性别)
VALUES ('02', '01', 'M2', 'D2', 'T2', '男')
GO
INSERT INTO 销售人员
(工号, 部门号, 姓名, 地址, 电话, 性别)
VALUES ('03', '01', 'M3', 'D3', 'T3', '男')
GO
INSERT INTO 销售人员
(工号, 部门号, 姓名, 地址, 电话, 性别)
VALUES ('04', '01', 'M4', 'D4', 'T3', '男')
GO
INSERT INTO 销售人员
(工号, 部门号, 姓名, 地址, 电话, 性别)
VALUES ('05', '01', 'M5', 'D5', 'T5', '男')
GO
INSERT INTO 货品信息
(编码, 名称, 库存量, 供应商编码, 状态, 售价, 成本价)
VALUES ('001', 'IT001', 66, '01', 'A', 8, 6)
GO
INSERT INTO 货品信息
(编码, 名称, 库存量, 供应商编码, 状态, 售价, 成本价)
VALUES ('002', 'IT002', 66, '01', 'A', 8, 6)
GO
INSERT INTO 货品信息
(编码, 名称, 库存量, 供应商编码, 状态, 售价, 成本价)
VALUES ('003', 'IT003', 66, '01', 'A', 8, 6)
GO
INSERT INTO 货品信息
(编码, 名称, 库存量, 供应商编码, 状态, 售价, 成本价)
VALUES ('004', 'IT004', 66, '01', 'A', 8, 6)
GO
INSERT INTO 货品信息
(编码, 名称, 库存量, 供应商编码, 状态, 售价, 成本价)
VALUES ('005', 'IT005', 66, '01', 'A', 8, 6)
GO
INSERT INTO 订单信息
(订单号, 销售工号, 货品编码, 客户编号, 数量, 总金额, 订货日期, 交货日期)
VALUES ('X01', '01', '001', 'C01', 10, 80, '2009.11.06', '2009.11.26')
GO
INSERT INTO 订单信息
(订单号, 销售工号, 货品编码, 客户编号, 数量, 总金额, 订货日期, 交货日期)
VALUES ('X02', '02', '002', 'C02', 10, 80, '2009.11.06', '2009.11.26')
GO
INSERT INTO 订单信息
(订单号, 销售工号, 货品编码, 客户编号, 数量, 总金额, 订货日期, 交货日期)
VALUES ('X03', '01', '003', 'C01', 10, 80, '2009.11.06', '2009.11.26')
GO
INSERT INTO 订单信息
(订单号, 销售工号, 货品编码, 客户编号, 数量, 总金额, 订货日期, 交货日期)
VALUES ('X04', '01', '001', 'C01', 10, 80, '2009.11.06', '2009.11.26')
GO
INSERT INTO 订单信息
(订单号, 销售工号, 货品编码, 客户编号, 数量, 总金额, 订货日期, 交货日期)
VALUES ('X04', '01', '001', 'C01', 10, 80, '2009.11.06', '2009.11.26')
GO


CREATE PROCEDURE [dbo].[sp_findcustomers]
@CliectID char(10) --对象id
AS
IF EXISTS(SELECT * FROM 客户信息 WHERe 姓名=@cliectID)
begin
select * from 客户信息 where 姓名=@cliectid
return 1
end


else
return 2
GO


CREATE TRIGGER [check_custno] ON [dbo].[客户信息]
FOR UPDATe
AS


IF update(编号)
BEGIN
ROLLBACK TRAN
RAISERROR('不允许修改编号列!',18,18)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


----以下为备份数据库的语句


BACKUP DATABASE [marketing] TO DISK = 'C:\marketing_bak' WITH NOINIT , NOUNLOAD , NAME = '备注名称', NOSKIP , STATS = 10, NOFORMAT


----以下为还原数据库命令语句


RESTORE DATABASE [marketing] FROM DISK = 'C:\marketing_bak' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY ,REPLACE
------以上代码分三次按顺序在查询分析器中运行即可.


------好意思不给我分吗?

全部回答
  • 1楼网友:躲不过心动
  • 2021-06-01 01:52
用C++做行不行?
  • 2楼网友:空山清雨
  • 2021-06-01 01:31
你直接进SQL的帮助里面
  • 3楼网友:長槍戰八方
  • 2021-06-01 00:59
请重新上传图片,没图不知道你的要求啊
  • 4楼网友:酒安江南
  • 2021-06-01 00:04

没图啊

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯