这个SQL Server 触发器 怎么实现?
数据库模式:Customer(CustomerNo,CustomerName,Telphone,Trust)OrderList(OrderNo,CustomerNo,Pr...
数据库模式:
Customer(CustomerNo,CustomerName,Telphone,Trust)
OrderList(OrderNo,CustomerNo,ProductName,OrderTime,SaleNum)
在OrderList表上创建一个触发器tri_Insert,当对OrderList表进行插入操作时,保证客户代码与Customer表中对应的字段值一致。
这是考试题,必须触发器啊,呵呵... 展开
Customer(CustomerNo,CustomerName,Telphone,Trust)
OrderList(OrderNo,CustomerNo,ProductName,OrderTime,SaleNum)
在OrderList表上创建一个触发器tri_Insert,当对OrderList表进行插入操作时,保证客户代码与Customer表中对应的字段值一致。
这是考试题,必须触发器啊,呵呵... 展开
2个回答
展开全部
CREATE TRIGGER tri_Insert
ON OrderList
FOR INSERT
AS
DECLARE
@CustomerNo 数据类型不明;
BEGIN
-- 取得插入的 CustomerNo
SELECT @CustomerNo = CustomerNo FROM INSERTED;
IF NOT EXISTS ( SELECT * FROM Customer WHERE CustomerNo = @CustomerNo )
BEGIN
-- 不允许记录被插入,删除记录
DELETE FROM OrderList WHERE OrderNo = (SELECT OrderNo FROM INSERTED);
-- 抛出异常
RAISERROR (错误代码, 错误严重级别, 错误状态代码);
END
END
ON OrderList
FOR INSERT
AS
DECLARE
@CustomerNo 数据类型不明;
BEGIN
-- 取得插入的 CustomerNo
SELECT @CustomerNo = CustomerNo FROM INSERTED;
IF NOT EXISTS ( SELECT * FROM Customer WHERE CustomerNo = @CustomerNo )
BEGIN
-- 不允许记录被插入,删除记录
DELETE FROM OrderList WHERE OrderNo = (SELECT OrderNo FROM INSERTED);
-- 抛出异常
RAISERROR (错误代码, 错误严重级别, 错误状态代码);
END
END
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询