看源码:USE testdb
GOIF EXISTS (SELECT name FROM sysobjects WHERE name='tB')
DROP TABLE tB
IF EXISTS (SELECT name FROM sysobjects WHERE name='tA')
DROP TABLE tAGO
--创建A表
CREATE TABLE tA
(Aid VARCHAR(4) PRIMARY KEY,
 Aname VARCHAR(10))GO
--创建B表
CREATE TABLE tB
(Bid VARCHAR(4) PRIMARY KEY,
 Aid VARCHAR(4),
 Bname VARCHAR(10),
 CONSTRAINT tB_Aid_fk FOREIGN KEY(Aid) REFERENCES tA(Aid))GO
--A表添加数据
INSERT INTO tA VALUES('A1','A1')
INSERT INTO tA VALUES('A2','A2')
INSERT INTO tA VALUES('A3','A3')
INSERT INTO tA VALUES('A4','A4')GO
--B表添加数据
INSERT INTO tB VALUES('B1','A1','B1')
INSERT INTO tB VALUES('B2','A2','B2')
INSERT INTO tB VALUES('B3','A3','B3')
INSERT INTO tB VALUES('B4','A4','B4')
GOIF EXISTS (SELECT name FROM sysobjects WHERE name='trigger_ta'AND type='TR')
DROP TRIGGER trigger_taGO
--创建A表触发器
CREATE TRIGGER trigger_ta
ON tA FOR DELETE
AS
IF @@ROWCOUNT=0
   RETURN
ELSE
   DELETE FROM tB WHERE Aid IN 
   (SELECT tB.Aid FROM tB,deleted WHERE tB.Aid=deleted.Aid)
   
我在A表建了 个触发器就是想实现删除A表的数据接着B表里数据也会删除,但是在执行的时候报错:
DELETE FROM tA WHERE Aid='A1'
/*结果提示:
 服务器: 消息 547,级别 16,状态 1,行 1
DELETE 语句与 COLUMN REFERENCE 约束 'tB_Aid_fk' 冲突。该冲突发生于数据库 'testdb',表 'tB', column 'Aid'。
语句已终止。
*/但如果是用外键级联删除就不会报错。
高手们看看,这是为什么啊,麻烦解释下,谢谢!!!