Ste*_*eam 3 sql sql-server sql-server-2005 sql-server-2008
我想删除桌子上的一些限制。因此,首先我必须找出约束的名称,然后查看要删除哪些约束。对于第一个任务,我使用了查询 -
SELECT *
FROM sys.indexes
WHERE object_id = OBJECT_ID('YourTableName')
Run Code Online (Sandbox Code Playgroud)
我从该查询返回的名称列中记下了表上唯一约束的名称。约束名称之一是 UNIQ_YourTableName_01。
为了放弃这个限制,我使用了 -
ALTER TABLE YourTableName
DROP CONSTRAINT UNIQ_YourTableName_01
Run Code Online (Sandbox Code Playgroud)
我收到错误 - UNIQ_YourTableName_01 不是约束。无法删除约束。请参阅以前的错误。我该如何解决 ?
谢谢。
您的查询将返回您需要删除为唯一约束创建的索引的索引名称
使用此查询
DROP INDEX Index_Name
ON Schema.Table_Name
Run Code Online (Sandbox Code Playgroud)
唯一约束会Unique Non-Clustered Index在幕后创建一个强制该列的唯一性的约束。
此外,如果您需要在插入后再次创建此索引,您可以简单地禁用它,一旦您完成了您想做的任何事情,您可以随后启用它。
像这样的东西...
ALTER INDEX [Index_Name] ON Schema.Table_Name DISABLE
GO
/* Do your Stuff here */
ALTER INDEX [Index_Name] ON Schema.Table_Name REBUILD
GO
Run Code Online (Sandbox Code Playgroud)