我们在SQL Server 2005 DB中已经意识到一些外键没有On Delete Cascade属性集,当我们尝试删除一些记录时,它会给我们一些参考错误.
使用Management Studio I脚本DROP和CREATESQL,但似乎CREATE无法正常工作.
的DROP:
USE [FootprintReports]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK__SUBSCRIPTIONS_Reports]') AND parent_object_id = OBJECT_ID(N'[dbo].[_SUBSCRIPTIONS]'))
ALTER TABLE [dbo].[_SUBSCRIPTIONS] DROP CONSTRAINT [FK__SUBSCRIPTIONS_Reports]
Run Code Online (Sandbox Code Playgroud)
和 CREATE
USE [FootprintReports]
GO
ALTER TABLE [dbo].[_SUBSCRIPTIONS] WITH CHECK ADD CONSTRAINT [FK__SUBSCRIPTIONS_Reports] FOREIGN KEY([PARAMETER_ReportID])
REFERENCES [dbo].[Reports] ([ID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[_SUBSCRIPTIONS] CHECK CONSTRAINT [FK__SUBSCRIPTIONS_Reports]
Run Code Online (Sandbox Code Playgroud)
如果我在GUI中手动更改"删除"的值,则在删除并重新创建后,"未删除"将无法正确更新.
作为测试,我在GUI中设置删除规则Set Null.它正确删除,并重新创建没有错误.如果我回到GUI,它仍然显示Set Null为删除规则.
我做错了什么吗?还是有另一种方法来编辑约束来添加ON DELETE CASCADE规则?
| 归档时间: |
|
| 查看次数: |
4983 次 |
| 最近记录: |