SqlServer2000级联删除的一些问题

SqlServer2000级联删除的一些问题,第1张

SqlServer2000级联删除的一些问题,第2张

1.建立四个表:
创建表客户端(
c _ id int identity (1,1),
c _ name nvarchar(255)unique,
c _ pass nvarchar (255),

c_mail varchar(255),
c_qq varchar(255),
primary key(c _ id)
);
创建表album _ kind(
k _ id int identity(1,1),
k_name nvarchar(255),
k_desc nvarchar(255),
primary key(k _ id)
);
创建表相册(
a_id int identity(1,1),
a_name nvarchar(255),
a_desc nvarchar(255),
a_create_date datetime,
a_times bigint,
c_id int,
k_id int,
主键(a_id),
外键(c_id)引用客户端(c_id
create table album _ word(
aw_id int identity(1,1),
aw_title nvarchar(255),
aw_content nvarchar(500),
commit_date datetime,
a_id int,
c_id int,
主键(aw _ id),
外键(a_id)引用删除级联上的album(a_id),

此时(创建第四个表时),sqlserver2000将报告一个错误:
在表' album_word '中引入外键约束' FK_album_word_album '将导致一个循环或多个级联路径。请为大测试提示指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或者修改其他外键约束。[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]未能创建约束。请参考之前的错误消息。
2。此时,我们删除第四个表中的级联删除:
“on delete cascade”
并再次执行。。。。这个问题可以通过
3解决。创建触发器(按照上面的步骤1.2):
在客户端上创建触发器Album _ Word _ Client
用于插入、更新、删除
as
Delete Album _ Word from Album _ Word join deleted on Album _ Word . c _ id = deleted . c _ id
完成!
语法:
create trigger with any name(如b _ a)on table a
for delete
as[delete table b from table b join deleted on table b . a table foreign key = deleted . a table primary key
(当

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SqlServer2000级联删除的一些问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情