为什么运行时提示错误?

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
未能创建约束。请参阅前面的错误信息。”
请指教!谢谢
...全文
42 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-10-07
  • 打赏
  • 举报
回复
同意马可.
pengdali 2003-10-07
  • 打赏
  • 举报
回复
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)'
exec(@bl)
end
set @i=@i-1
end
return
txlicenhe 2003-10-07
  • 打赏
  • 举报
回复
substring(@zdm,3,2)有重复吧?
hljhl 2003-10-07
  • 打赏
  • 举报
回复
请问同一个代码表能不能做另一个表的两个不同字段的外键
本IIS安装程序适用于Windows 2003系统,IIS版本为6.0版。该自动安装程序最大程度简化了安装IIS的繁琐步骤,且无须操作系统光盘,直接双击即可自动完成安装,并自动注册asp.net运行环境(如果安装了.net),为基于IIS的软件开发和部署带来了极大的便利。 与IIS相关的常见问题: ●有没有用于其它操作系统的IIS全自动安装程序?   我们现已制作并提供了包括Windows 2000/XP/2003在内的多种操作系统所适用的IIS自动安装程序。 ●安装IIS时总是提示无法复制staxmem.dll、iisapp.vbs、convlog.exe等文件?   如果确定安装盘或安装文件没问题,在“运行”中执行:esentutl /p %windir%/security/database/secedit.sdb。然后再重新开始安装IIS。 ●安装IIS后访问网站下的页面时出现HTTP 500内部服务器错误?   请运行此文件夹中的IIS500.bat,之后再重新测试。 ●IIS(或IIS下的网站)无法启动?   目前已知的导致IIS不能启动的原因有:   1、安装了WEB迅雷。解决方法:卸载WEB迅雷,或先退出WEB迅雷再启动IIS,然后再启动WEB迅雷(如果需要);   2、其它软件占用了80端口。解决方法:修改其它网站的端口或IIS下的网站的端口,避免使用相同的端口。可以使用诸如TCPView或FPort等第三方工具来查找正在使用80端口的其它应用程序;   3、操作系统补丁所导致的。打开“添加删除程序”,勾选“显示更新”,在列表中找KB939373、 kB942830、KB942831这三个补丁,如果有,将其卸载,之后再启动IIS。 感谢"蓝点"

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧