名前を知らずに SQL のデフォルト制約を削除する
SQL Server では、特に名前が不明な場合、デフォルト制約を識別して削除することが困難になることがあります。不明または矛盾している。これに対処するには、動的クエリ生成を使用して、デフォルトの制約を効果的に特定して削除できます。
展開された回答:
Mitch Wheat が共有したスクリプトを展開します。包括的なアプローチには、DROP CONSTRAINT コマンドを動的に生成して実行することが含まれます。仕組みは次のとおりです:
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)
説明:
利点:
以上が名前を知らずに SQL のデフォルト制約を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。