sql >> データベース >  >> RDS >> Sqlserver

名前を知らずにSQLのデフォルトの制約を削除するにはどうすればよいですか?

    Mitch Wheatのコードを拡張すると、次のスクリプトは、制約を削除して動的に実行するコマンドを生成します。

    declare @schema_name nvarchar(256)
    declare @table_name nvarchar(256)
    declare @col_name nvarchar(256)
    declare @Command  nvarchar(1000)
    
    set @schema_name = N'MySchema'
    set @table_name = N'Department'
    set @col_name = N'ModifiedDate'
    
    select @Command = 'ALTER TABLE ' + @schema_name + '.[' + @table_name + '] DROP CONSTRAINT ' + d.name
     from sys.tables t
      join sys.default_constraints d on d.parent_object_id = t.object_id
      join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id
     where t.name = @table_name
      and t.schema_id = schema_id(@schema_name)
      and c.name = @col_name
    
    --print @Command
    
    execute (@Command)
    


    1. SQLServerデータベースのスコープ構成と自動プラン修正

    2. OraclePLSQLで区切りリストをループする方法

    3. タイムゾーンが等しいPostgres時間

    4. 新しいMicrosoftSQLServerODBCおよびOLEDBドライバーのもつれを解く