为什么运行时提示错误?
hljhl 2003-10-07 11:42:45 下面过程的意思是给一个69个字段的表中名前两个字符是"d_"的所有列建外键,和外键关联的表名即为该列名的前4个字符
ALTER proc usp_create_zb_fk
as
declare @i int,@zdm varchar(10),@bl varchar(200)
set @i=69
while @i>0
begin
set @zdm=col_name(object_id('zzryxxb'),@i)
print @zdm
if substring(@zdm,1,2)='d_'
begin
set @bl='alter table zzryxxb add constraint fk_zb_'+substring(@zdm,3,2)+' foreign key ('+@zdm+') references '+substring(@zdm,1,4)+'(code) on update cascade'
exec(@bl)
end
set @i=@i-1
end
return
语法检查没有错,但运行时提示:“服务器: 消息 1785,级别 16,状态 1,行 1
将 FOREIGN KEY 约束 'fk_zb_db' 引入表 'zzryxxb' 中将导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其它 FOREIGN KEY 约束。
服务器: 消息 1750,级别 16,状态 1,行 1
未能创建约束。请参阅前面的错误信息。”
请指教!谢谢