【问题标题】: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
    

    它对我有用...希望它有帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多