【问题标题】:How can we find the name of the constraint from the Database.?我们如何从数据库中找到约束的名称。?
【发布时间】:2015-01-21 12:52:05
【问题描述】:
我有表 prsl,它具有自动生成的约束名称。我想搜索数据库保存这些名称的位置。
ALTER TABLE [dbo].[PRSL] 删除约束 [PK__PRSL__1C1D47DC0BF1ACC7]
实际上,我想动态删除这些约束。
例如
SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[PRSL]')
删除表上的所有约束。
删除约束“找到时”
【问题讨论】:
标签:
sql
sql-server-2008-r2
【解决方案1】:
如果您愿意显示给定表的所有约束
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where TABLE_NAME = 'YOUR TABLE NAME'
如果您想删除给定表的所有约束,请使用:
DECLARE @database nvarchar(50)
DECLARE @table nvarchar(50)
set @database = 'dotnetnuke'
set @table = 'tabs'
DECLARE @sql nvarchar(255)
WHILE EXISTS(select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where constraint_catalog = @database and table_name = @table)
BEGIN
select @sql = 'ALTER TABLE ' + @table + ' DROP CONSTRAINT ' + CONSTRAINT_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where constraint_catalog = @database and
table_name = @table
exec sp_executesql @sql
END
它对我有用...希望它有帮助...