我正试图在Northwind放一张桌子,我得到了:
ALTER TABLE DROP COLUMN Region failed because one or more objects access this column.
我正在使用:
use [NorthWind]
go
alter table dbo.Customers
drop column Region
我想这是因为列Region有一个约束。如何找出需要删除的约束?
答案 0 :(得分:1)
EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
GO
OR
ALTER TABLE table_Name NOCHECK CONSTRAINT all
OR
ALTER TABLE table_Name NOCHECK CONSTRAINT constraint_name
然后尝试使用SQL。
如果你真的想放弃约束而不管其他受影响的桌子,请使用它。
如果禁用约束是不够的,则必须删除约束。
答案 1 :(得分:1)
您必须首先删除约束,然后删除该表。如果您有SQL Server Management Studio,则可以选择约束并使用GUI将其删除。或者您可以使用命令行来删除约束
How to remove foreign key constraint in sql server?。取自这个答案
ALTER TABLE <TABLE_NAME> DROP CONSTRAINT <FOREIGN_KEY_NAME>
答案 2 :(得分:0)
如果要在对象资源管理器窗口中通过Sql Server Management Studio,请右键单击要删除的对象,然后单击“查看依赖项”。
答案 3 :(得分:0)
首先,你应该知道ForeignKey - Constraint。在那之后,你必须放弃它。
这样的事情:
-- looking for the Constraint's name related the dbo.Customers table
SELECT Table_Name,Constraint_Name
FROM Information_Schema.CONSTRAINT_TABLE_USAGE
WHERE Table_Name 'Customers'
-- Drop/Delete the founded constraint
ALTER TABLE [dbo].[Customers] DROP CONSTRAINT [FOREIGN_KEY_NAME]
然后,您将运行您的实际脚本。