如何级联删除自反关系的表里里面的记录

mongmong 2003-04-13 10:51:24
CREATE TABLE [dbo].[TABLE1] (
[id] [bigint] IDENTITY (1, 1) NOT NULL ,
[ref] [bigint] NULL ,
[text] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[TABLE1] WITH NOCHECK ADD
CONSTRAINT [PK_TABLE1] PRIMARY KEY CLUSTERED
(
[id]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[TABLE1] ADD
CONSTRAINT [FK_TABLE1_TABLE1] FOREIGN KEY
(
[ref]
) REFERENCES [dbo].[TABLE1] (
[id]
)
GO

不能级联删除多条记录,系统提示
服务器: 消息 547,级别 16,状态 1,行 1
DELETE 语句与 COLUMN SAME TABLE REFERENCE 约束 'FK_TABLE1_TABLE1' 冲突。该冲突发生于数据库 'test',表 'TABLE1', column 'ref'。
语句已终止。

谁能告诉我如何实现拥有自反应用关系表的记录级联删除?
谢谢
...全文
34 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mongmong 2003-04-14
  • 打赏
  • 举报
回复
有答案了,自反关联的FK不能设置为ON DELETE CASCADE
愉快的登山者 2003-04-14
  • 打赏
  • 举报
回复
ALTER TABLE [dbo].[TABLE1] drop
CONSTRAINT [FK_TABLE1_TABLE1]
GO
应该是可以的。
如果不行,可能是你的登陆用户权限不够。
用数据库的所有者用户登陆。然后执行删除外键定义。
mongmong 2003-04-13
  • 打赏
  • 举报
回复
不行了,那个check mark已经是disable的了
不能修改,用sql来修改的话就得到下面的错误:
服务器: 消息 1785,级别 16,状态 1,行 1
将 FOREIGN KEY 约束 'FK_TABLE1_TABLE1' 引入表 'TABLE1' 中将导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其它 FOREIGN KEY 约束。
服务器: 消息 1750,级别 16,状态 1,行 1
未能创建约束。请参阅前面的错误信息。
pengdali 2003-04-13
  • 打赏
  • 举报
回复
在设计表-->右键-->级联删除-->???

34,590

社区成员

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

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