导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

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

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'。
语句已终止。

谁能告诉我如何实现拥有自反应用关系表的记录级联删除?
谢谢
...全文
8 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mongmong 2003-04-14
有答案了,自反关联的FK不能设置为ON DELETE CASCADE
回复
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
在设计表-->右键-->级联删除-->???
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告