
这个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

2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询