SQL连级删除的触发器怎么不管用?
由于表“许可证正本”与 “许可证与倾倒区的关系”和“许可证与废弃物的关系”这两个表都有外键相连,所以必须先将这两个关系表中的内容删除了才能删除“许可证正本”表中的记录。
我的触发器是这么写的:
CREATE TRIGGER [VisaOriginalDelete]
ON [dbo].[许可证正本]
for DELETE
AS
BEGIN
delete from 许可证与倾倒区的关系 where 许可证正本编号 in (select 许可证编号 from deleted)
delete from 许可证与废弃物的关系 where 许可证正本编号 in (select 许可证编号 from deleted)
end
可是还是不能删除“许可证正本”中的记录,报错是外键的原因。
我自己解决了,instead of做的
CREATE TRIGGER [VisaOriginalDelete]
ON [dbo].[许可证正本]
instead of DELETE
AS
BEGIN
delete from 许可证与倾倒区的关系 where 许可证正本编号 in (select 许可证编号 from deleted)
delete from 许可证与废弃物的关系 where 许可证正本编号 in (select 许可证编号 from deleted)
delete from 许可证正本 where 许可证编号 in (select 许可证编号 from deleted)
end
可是不用instead of 可以做吗?
SQL code:
指定触发器只有在触发 SQL 语句中指定的所有操作都已成功执行后才激发。所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器。
如果仅指定 FOR 关键字,则 AFTER 是默认设置。
不能在视图上定义 AFTER
相关问答:
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
请问
添加新数据源->数据库->添加连接
这个界面下,数据源选择:Microsoft SQL Server (SqlClient);
服务器名:
应该写什么呢?
有谁知道?多谢各位!!
你到底是要连mysql还是mssql?
引用
请问
......