我有表prsl,它具有自动生成的约束名称。我想搜索数据库保存这些名称的位置。 ALTER TABLE [dbo]。[PRSL] DROP CONSTRAINT [PK__PRSL__1C1D47DC0BF1ACC7]
实际上,我想动态地删除这些约束。 例如
SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[PRSL]')
删除表格上的所有约束。
找到时删除约束'
答案 0 :(得分: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
它对我有用...希望它有所帮助...