2022年SQL数据库实验报告 .pdf
西 安 邮 电 大 学数据库课内实验报 告 书学 院 名 称:计算机学院学 生 姓 名:高丹专 业 名 称:计算机科学与技术班级:1106 班学号:04111196(22) 时间:2013.4 2013.5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 实验 2 定义表和数据库完整性一、实验目的1了解 SQL Server 2000的基本数据类型、 空值的概念, 以及表的结构特点。2. 学会使用 T_SQL 语句和企业管理器创建表结构和修改表结构。3. 学会使用 SQL Server 2000提供的数据完整性功能,并在创建表时定义表的数据完整性。通过实验进一步理解数据完整性的概念及分类。二、实验内容用 T_SQL 语句在 Market 数据库中创建客户基本信息表Cuetomers 、货品信息表 Goods 、订单信息表 Orders,它们的定义如下/* 基本表的定义与创建*/ CREATETABLECustomers ( CustomerIDintIDENTITY( 1, 1)PRIMARYKEY, CName varchar( 8)NOT NULL, Addressvarchar( 50 ), Cityvarchar( 10 ), Telvarchar( 20 )UNIQUE , Companyvarchar( 50 ), Birthdaydatetime, TypetinyintDEFAULT 1 ); CREATETABLEGoods ( GoodsIDintCONSTRAINTC1 PRIMARYKEY, GoodsNamevarchar( 20 )NOT NULL, Pricemoney , Decriptionvarchar( 200 ), Storageint, Providervarchar( 50 ), StatustinyintDEFAULT ( 0) ); CREATETABLEOrders ( OrderIDintIDENTITY( 1, 1)CONSTRAINTC2 PRIMARYKEY, GoodsIDintNOT NULLREFERENCES Goods ( GoodsID)ON DELETECASCADE, /* 表级完整性约束条件,参照约束为Goods(GoodID),删除时进行级联删除*/ CustomerIDintNOT NULLFOREIGNKEY( CustomerID) REFERENCES Customers( CustomerID)ON DELETENO ACTION , /* 表级完整性约束条件,参照约束为Customers(CustomerID),删除时不删除参照表中的被引用行*/QuantityintNOT NULLCONSTRAINTC3 CHECK( Quantity 0 ), 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - OrdersummoneyNOT NULL, OrderDatadatetimeDEFAULT ( getdate() ); 实验 3 表数据的插入、修改和删除一、实验目的掌握使用 T_SQL 语句和企业管理器对数据进行插入、 修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。通过本实验,要熟练掌握INSERT 、UPDATE、DELETE 语句的语法和使用方法。二、实验内容(1)向数据库 Market 的各张表中输入一些记录。(2)使用 T_SQL 语句进行插入、修改和删除记录的操作。/* 在 Customers表中已有数据的基础上向各个表中插入数据*/INSERTINTOCustomers( CName, Address, City, Tel , Company , Birthday) VALUES( 王伟 , 长安区 , 西安 , 029005, 邮电大学 , 1995-02-13) /* 向Goods 表中插入数据*/ INSERTINTOGoods ( GoodsID, GoodsName , Price, Decription, Storage, Provider, Status) VALUES( 0001, 书包 , 45.00, 双肩包 , 20, 舒适 , 1) /* 向Goods 表中插入数据*/ INSERTINTOGoods ( GoodsID, GoodsName , Price, Decription, Storage, Provider, Status) VALUES( 0001, 书包 , 45.00, 双肩包 , 20, 舒适 , 1) /* 修改表中的数据*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - UPDATEGoods/* 将Goods 表中的所有价钱都增加*/ SETPrice=Price+10 ; UPDATEOrders SETQuantity=5 WHERE CustomerID=2; /* 将Orders表中 CustomerID为的客户订单数量修改为*/ UPDATECustomers SETTel =0911536 ,Address= 长安区 WHERE CustomerID=3; 修改后的表:/* 删除表中的一些数据*/ DELETEFROM Orders WHERE CustomerID=2; /* 删除了 CustomerID为的订单记录*/ 删除记录之后的表:实验 4 数据的简单查询和连接查询一、实验目的数据查询时数据库中最基本的操作,也是使用最频繁的操作,因此必须掌握 SQL的查询语句( SELECT 语句)的使用方法。本实验要求掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 二、实验内容(1)简单查询操作。该实验包括投影、选择条件表达、数据排序等。在数据库 Market 的客户表 Customers 、货品表 Goods 、订单表 Orders 中完成第 3 章习题 6 中(1)-(4)的查询。(2)连接查询操作。该实验包括等值连接、自然连接、一般连接(内连接 ) 、外连接、左外连接、右外连接和自然连接等。在数据库 Market 的客户表 Customers、货品表 Goods 、订单表 Orders 中完成第 3 章习题 6 中(5) 的查询。(一)简单查询操作1, 查找所有西安客户的信息/* 查询 */ SELECT* FROM Customers WHERE City= 西安 ;/* 查找所有西安客户的信息*/2. 查找所有商品的名称,库存,价格以及表示打折价,按升序排列SELECTGoodsName , Storage, Price, 0.25 * PriceDiscount FromGoods ORDER BY PriceASC;/* 查找所有商品的名称,库存,价格以及表示打折价,按升序排列*/ 3. 查找商品名中包含“ 衣” 的商品编号,名称及价格SELECTGoodsID, GoodsName , Price FromGoods WHERE GoodsNameLIKE% 衣% ;/* 查找商品名中包含“ 衣” 的商品编号,名称及价格*/ 4. 查询库存量大于小于的商品名称,库存和单价SELECTGoodsName , Storage, Price FromGoods WHERE Storage100 AND Storage2 实验 5 数据库的复杂查询一、实验目的进一步掌握 SELECT 语句的使用方法, 通过实验能够熟练地使用SELECT 语句。本实验要求掌握嵌套查询和统计查询的操作方法。二、实验内容在数据库 Market 的客户表 Customers、货品表 Goods 、订单表 Orders 中完成第3 章习题 6 中(6)-(9)的查询。三、运行结果(1)查找订单编号,商品编号,客户编号,按日期对订单分组,显示订货数量不超的订单信息SELECTOrderID, GoodsID, CustomerID FROM Orders WHERE Quantity=30 ( SELECTOrderdata FROM Orders groupbyOrderdata);(7) 查找所有西安客户的订单信息,要求用不相关子查询完成SELECT* FROM Orders WHERE CustomerIDin ( SELECTCustomerID 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - FROM Customers WHERE City= 西安 );(8) 查找不是上海客户的订单信息SELECT* FROM Orders WHERE CustomerIDin ( SELECTCustomerID FROM Customers WHERE City 上海 ); (9) 查找所有西安客户的相关信息以及他们的订单情况SELECT* FROM Customers, Orders WHERE Customers. CustomerID=Orders. CustomerIDandCity= 西安 ;实验 6 索引和视图一、实验目的(1) 理解索引和视图的概念。(2) 掌握索引的使用方法。(3) 掌握视图的定义和使用方法。二、实验内容在 Market 数据库中,完成第3 章习题 11 中(1) 的建立视图的操作,然后在该视图上完成第 3 章习题 11 中(2) 的查询操作。三、运行结果CREATEVIEWXIAN_ORDER ( OrderID, GoodsName , Quantity, CustomerID, Cname ) AS SELECTOrderID, GoodsName , Quantity, Orders. CustomerID, Cname FROM Orders, Goods , Customers WHERE Customers. CustomerID=Orders. CustomerIDANDGoods . GoodsID=Orders. OrderIDAND City= 西安 /* 创建西安客户订单的视图*/ SELECT* FROM XIAN_ORDER/* 查找西安客户的订单信息*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 实验 7 存储过程一、实验目的理解存储过程的概念,掌握存储过程的使用方法。二、实验内容( 一) 在 Market 数据库中,完成第 4 章习题 5 中(1)-(4)创建存储过程的操作, 并使用 EXCEL 语句调用这些存储过程执行,观察他们的执行过程。( 二) 在 Market 数据库中,进一步完成以下操作。1创建一个存储过程Goods_Orders1,查看任何指定货物的订单情况,包括订单号、订货客户的姓名以及订货数量等( 要使用输入参数 ) 。2. 执行存储过程 Goods_Orders1时,如果没有给出参数, 则系统会报错, 如果希望不给出参数是能查出所有货品的订单,则可以用默认参数值来实现。 为此要求创建另一个存储过程Goods_Orders2来完成此功能。3. 创建一个存储过程 Goods_OrderSum ,来获得某个货品的订单总额( 要使用输入以及输出参数 ) 。三、运行结果( 一)(1) 第 4 章习题 5 中(1)-(4)创建存储过程的操作结果如下/* 为上海客户建立存储过程*/ CREATEproceduresp_shanghai AS SELECT* FROM customersWHERE city= 上海 ; CREATEproceduresp_Goods GoodsIDchar( 20 ) AS SELECTGoods . GoodsID, GoodsName , Price, Provider, Storage, Status FROM Goods/* 创建存储过程sp_Goods,查看制定商品信息,商品编号作为输入参数*/ /* 以客户编号作为输入参数,订单总金额作为输出函数,建立存储过程*/ CREATEproceduresp_goodsum 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - Cnumberchar( 10 ), Osum intoutput AS SELECTosum=Ordersum FROM Orders WHERE CustomerID=cnumber * 编写存储过程sp_insertGoods,向 Goods中插入一条记录*/CREATEproceduresp_insertGoods GoodsIDint, GoodsNamevarchar( 20 ), Pricemoney , DecriptionVARCHAR( 200 ), Storageint, ProviderVARCHAR( 50 ),StatusTINYINT AS insertintoGoods values ( GoodsID , GoodsName , Price, Decription, Storage, Provider, Status); / 创建一个存储过程Goods_Orders1,查看任何指定货物的订单情况,包括订单号、订货客户的姓名以及订货数量等( 要使用输入参数)*/CREATEprocedureGoods_Orders1 GoodsIDint, OrderIDintoutput, CName varchar( 20 )output, Quantityintoutput, OrderSummoneyoutput, Orderdatadatetimeoutput AS SELECTOrderID, CName, Quantity, OrderSum, Orderdata FROM Orders, Customers 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - WHERE Customers. CustomerID=Orders. CustomerIDandGoodsID=GoodsID ; /*1. 执行存储过程 Goods_Orders1时,如果没有给出参数,则系统会报错,如果希望不给出参数是能查出所有货品的订单,则可以用默认参数值来实现。为此要求创建另一个存储过程Goods_Orders2来完成此功能CREATEprocedureGoods_Orders2 GoodsIDint=NULL AS IFGoodsIDisNULL BEGIN SELECTOrderID, CName, Quantity, OrderSum, Orderdata FROM Orders, Customers WHERE Customers. CustomerID=Orders. CustomerIDEND ELSE BEGIN SELECTOrderID, CName, Quantity, OrderSum, Orderdata FROM Orders, Customers WHERE Customers. CustomerID=Orders. CustomerIDandGoodsID=GoodsIDEND/*3.创建一个存储过程Goods_OrderSum,来获得某个货品的订单总额( 要使用输入以及输出参数 )*/ CREATEprocedureGoods_OrderSum GoodsNamevarchar( 20 ), OrderSummoneyoutput AS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - SELECTOrderSum FROM Orders, Goods WHERE Goods . GoodsID=Orders. GoodsIDandGoodsName =GoodsName ; 实验 8 触发器一、实验目的学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。二、实验内容(1) 在 Market 数据库中,完成第4 章习题 5 中(5)-(9)创建触发器的操作,然后在相关的表上执行INSERT 、UPDATE 或 DALETE 语句,观察他们的执行结果。三、运行结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 20 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - 五代码设计技巧及体会首先,我觉得自己使用SQL就比较生疏,刚开始不是很了解,可是通过几次上机试验后对于程序运行环境有了进一步的了解,为写代码和使用SQL打下了基础,第一次写了这么多的语句,遇到了很多困难,有些在书上找不到,需要自己认真思考,根据书上的例子进行变通,不会的时候就请教了老师或者同学,解决了一大部分的问题,自己对于SQL语句也有更进一步的了解,到后来能够自己去写代码而不用参考教材,这其中真的学到了不少东西,不足的地方还是有的,有一小部分的问题还等待在日后的学习中去解决。源代码:/* 基本表的定义与创建*/ CREATE TABLE Customers ( CustomerID int IDENTITY(1,1) PRIMARY KEY, CName varchar(8) NOT NULL, Address varchar(50), City varchar(10), Tel varchar(20) UNIQUE, Company varchar(50), Birthday datetime, Type tinyint DEFAULT 1 ); CREATE TABLE Goods ( GoodsID int CONSTRAINT C1 PRIMARY KEY, GoodsName varchar(20) NOT NULL, Price money, Decription varchar(200), Storage int, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 20 页 - - - - - - - - - Provider varchar(50), Status tinyint DEFAULT(0) ); CREATE TABLE Orders ( OrderID int IDENTITY(1,1) CONSTRAINT C2 PRIMARY KEY, GoodsID int NOT NULL REFERENCES Goods(GoodsID) ON DELETE CASCADE, /*表级完整性约束条件,参照约束为Goods(GoodID) ,删除时进行级联删除*/ CustomerID int NOT NULL FOREIGN KEY(CustomerID) REFERENCES Customers(CustomerID) ON DELETE NO ACTION, /*表级完整性约束条件,参照约束为Customers(CustomerID),删除时不删除参照表中的被引用行*/ Quantity int NOT NULL CONSTRAINT C3 CHECK(Quantity 0), Ordersum money NOT NULL, OrderData datetime DEFAULT(getdate() ); /* 在 Customers 表中已有数据的基础上向各个表中插入数据*/ INSERT INTO Customers(CName,Address,City,Tel,Company,Birthday) VALUES(王伟 ,长安区 ,西安 ,029005,邮电大学 ,1995-02-13) INSERT INTO Customers(CName,Address,City,Tel,Company,Birthday) VALUES(惠敏 ,海淀区 ,北京 ,010001,中国农业大学 ,1992-06-23) INSERT INTO Customers(CName,Address,City,Tel,Company,Birthday) VALUES(王二小 ,浦东新区 ,上海 ,021001,上海商学院 ,1991-05-07) INSERT INTO Customers(CName,Address,City,Tel,Company,Birthday) VALUES(周颖 ,临潼区 ,西安 ,029006,西安科技大学 ,1991-02-02) INSERT INTO Customers(CName,Address,City,Tel,Company,Birthday) VALUES(吴起 ,槐荫区 ,山东 ,058436,山东师范 ,1990-10-09) /* 向 Goods表中插入数据*/ INSERT INTO Goods(GoodsID,GoodsName,Price,Decription,Storage,Provider,Status) VALUES(0001,书包 ,45.00,双肩包 ,20,舒适 ,1) INSERT INTO Goods(GoodsID,GoodsName,Price,Decription,Storage,Provider,Status) VALUES(0002,水杯 ,32.00,塑料 ,322,特百惠 ,1) INSERT INTO Goods(GoodsID,GoodsName,Price,Decription,Storage,Provider,Status) VALUES(0003,上衣 ,100.22,长款 ,18,春季适用 ,1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 20 页 - - - - - - - - - INSERT INTO Goods(GoodsID,GoodsName,Price,Decription,Storage,Provider,Status) VALUES(0004,风衣 ,128.22,长款 ,28,秋季适用 ,1) INSERT INTO Goods(GoodsID,GoodsName,Price,Decription,Storage,Provider,Status) VALUES(0005,短裤 ,56.88,超短 ,50,夏季适用 ,1) /* 向 Orders 表中插入数据,其中有错误数据的测试*/ INSERT INTO Orders(GoodsID,CustomerID,Quantity,Ordersum,OrderData) VALUES(0003,1,4,100.22,2011-05-07) INSERT INTO Orders(GoodsID,CustomerID,Quantity,Ordersum,OrderData) VALUES(0001,2,3,45.00,2011-12-21) INSERT INTO Orders(GoodsID,CustomerID,Quantity,Ordersum,OrderData) VALUES(0002,5,10,32.00,2012-03-02) INSERT INTO Orders(GoodsID,CustomerID,Quantity,Ordersum,OrderData) VALUES(0004,3,2,128.22,2013-04-18) INSERT INTO Orders(GoodsID,CustomerID,Quantity,Ordersum,OrderData)/*该语句错误,应为赋给OrderID 的值没有参照表Orders*/ VALUES(0006,3,1,32.00,2013-05-07) /* 修改表中的数据*/ UPDATE Goods /*将 Goods表中的所有价钱都增加10*/ SET Price=Price+10; UPDATE Orders SET Quantity=5 WHERE CustomerID=2;/* 将 Orders 表中 CustomerID 为 2 的客户订单数量修改为5*/ UPDATE Customers SET Tel=0911536 , Address=长安区 WHERE CustomerID=3; UPDATE Orders SET CustomerID=10 WHERE GoodsID=0001; /*该语句错误,没有参考完整性*/ /* 删除表中的一些数据*/ DELETE FROM Orders WHERE CustomerID=2;/* 删除了 CustomerID 为 2的订单记录 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 20 页 - - - - - - - - - /* 查询 */ SELECT * FROM Customers WHERE City= 西安 ; /*查找所有西安客户的信息*/ SELECT GoodsName,Storage,Price,0.25*Price Discount From Goods ORDER BY Price ASC; /*查找所有商品的名称,库存,价格以及表示打折价,按升序排列*/ SELECT GoodsID,GoodsName,Price From Goods WHERE GoodsName LIKE % 衣%; /*查找商品名中包含“衣”的商品编号,名称及价格*/ SELECT GoodsName,Storage,Price From Goods WHERE Storage100 AND Storage2 /* 复杂查询 */ /* 查找订单编号,商品编号,客户编号,按日期对订单分组,显示订货数量不超30 的订单信息 */ SELECT OrderID,GoodsID,CustomerID FROM Orders WHERE Quantity=30 (SELECT Orderdata FROM Orders group by Orderdata); /* 查找北京客户的订单信息*/ SELECT * FROM Orders WHERE CustomerID in (SELECT CustomerID FROM Customers WHERE City= 西安 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 20 页 - - - - - - - - - /* 查找不是上海客户的订单信息*/ SELECT * FROM Orders WHERE CustomerID in (SELECT CustomerID FROM Customers WHERE City 上海 ); /* 北京客户的相关信息及订单情况*/ SELECT * FROM Customers,Orders WHERE Customers.CustomerID=Orders.CustomerID and City=西安 ; CREATE VIEW XIAN_ORDER(OrderID,GoodsName,Quantity,CustomerID,Cname) AS SELECT OrderID,GoodsName,Quantity,Orders.CustomerID,Cname FROM Orders,Goods,Customers WHERE Customers.CustomerID=Orders.CustomerID AND Goods.GoodsID=Orders.OrderID AND City=西安 /*创建西安客户订单的视图*/ SELECT * FROM XIAN_ORDER /* 查找西安客户的订单信息*/ /* 存储过程 */ /* 为上海客户建立存储过程*/ CREATE procedure sp_shanghai AS SELECT * FROM customers WHERE city= 上海 ; CREATE procedure sp_Goods GoodsID char(20) AS SELECT Goods.GoodsID,GoodsName,Price,Provider,Storage,Status FROM Goods /*创建存储过程sp_Goods,查看制定商品信息,商品编号作为输入参数 */ EXECUTE sp_Goods GoodsID=0001; /* 以客户编号作为输入参数,订单总金额作为输出函数,建立存储过程*/ CREATE procedure sp_goodsum Cnumber char(10), Osum int output AS SELECT osum=Ordersum 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 20 页 - - - - - - - - - FROM Orders WHERE CustomerID=cnumber CREATE procedure sp_insertGoods GoodsID int,GoodsName varchar(20),Price money,Decription VARCHAR(200),Storage int,Provider VARCHAR(50), Status TINYINT AS insert into Goods values (GoodsID,GoodsName,Price,Decription,Storage,Provider,Status);/*编写存储过程sp_insertGoods,向 Goods中插入一条记录*/ DROP procedure sp_insertGoods /* 调用存储过程*/ EXECUTE procedure sp_insertGoods 0006, 帽子 ,18.00,沙滩帽 ,100,上海 ,1 CREATE procedure Goods_Orders1 GoodsID int, OrderID int output,CName varchar(20) output,Quantity int output,OrderSum money output,Orderdata datetime output AS SELECT OrderID,CName,Quantity,OrderSum,Orderdata FROM Orders,Customers WHERE Customers.CustomerID=Orders.CustomerID and GoodsID=GoodsID;/*1. 创建一个存储过程 Goods_Orders1, 查看任何指定货物的订单情况,包括订单号、订货客户的姓名以及订货数量等 ( 要使用输入参数)*/ CREATE procedure Goods_Orders2 GoodsID int=NULL AS IF GoodsID is NULL BEGIN SELECT OrderID,CName,Quantity,OrderSum,Orderdata FROM Orders,Customers WHERE Customers.CustomerID=Orders.CustomerID END ELSE BEGIN SELECT OrderID,CName,Quantity,OrderSum,Orderdata FROM Orders,Customers WHERE Customers.CustomerID=Orders.CustomerID and GoodsID=GoodsID END /*2.执行存储过程Goods_Orders1 时,如果没有给出参数,则系统会报错,如果希望不给出参数是能查出所有货品的订单,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 20 页 - - - - - - - - - 则可以用默认参数值来实现。为此要求创建另一个存储过程Goods_Orders2 来完成此功能*/ /*3. 创建一个存储过程Goods_OrderSum ,来获得某个货品的订单总额( 要使用输入以及输出参数 )*/ CREATE procedure Goods_OrderSum GoodsName varchar(20), OrderSum money output AS SELECT OrderSum FROM Orders,Goods WHERE Goods.GoodsID=Orders.GoodsID and GoodsName=GoodsName; /* 触发器 */ /* 在 Customers 表上建立删除触发器,实现Customers 表和 Orders 表的级联删除*/ CREATE trigger CustomersDelete on Customers AFTER delete as delete from Orders where CustomerID in (select deleted.CustomerID from deleted); /* 在 Orders 表上建立插入触发器,当向表中添加一条订货记录时,若订单中的商品状态为整理 (Status=1),则不能插入该条记录*/ CREATE trigger Orders_insert on Orders