+ -
当前位置:首页 → 问答吧 → sql 2000 建立触发器遇到了问题

sql 2000 建立触发器遇到了问题

时间:2011-11-29

来源:互联网

建立了两个表
s(sno,sname,ssex)学生表
sc(sno,cno,grade)学生选课表
现在我想在s表上建立一个触发器实现级联删除
我建立的触发器如下:
CREATE TRIGGER deletes ON [dbo].[s] 
FOR DELETE 
AS
  delete from dbo.sc where sno=s.sno

检查语法的时候说列前缀‘s’与查询中所用的表名或别名不匹配,我改成dbo.s.sno
还是不对

请问哪儿出问题了呢

作者: jiez   发布时间: 2011-11-29

用不着创建触发器.

在建表时,设置外键,并加上 
FOREIGN KEY 
  REFERENCES referenced_table_name[( ref_column )]
  ON DELETE CASCADE
  ON UPDATE CASCADE

就能自动实现级联删除和级联更新. 

作者: qianjin036a   发布时间: 2011-11-29

SQL code

delete a
from sc a join inserted b on a.sno = b.sno

作者: AcHerat   发布时间: 2011-11-29

SQL code
CREATE TRIGGER deletes ON [dbo].[s] 
FOR DELETE 
AS
  delete s from dbo.sc as s where sno=s.sno


條件s.sn 不一致

作者: roy_88   发布时间: 2011-11-29

應該這樣改

SQL code
CREATE TRIGGER deletes ON [dbo].[s] 
FOR DELETE 
AS
  delete  sc from dbo.sc AS sc,INSERTED i  where i.sno=sc.sno

作者: roy_88   发布时间: 2011-11-29

热门下载

更多