背景
SQL Server では列にデフォルト制約を作成できます。ただし、初期のバージョンでは、タイプミスにより、「DF_SomeTable_ColName」や「DF_SmoeTable_ColName」などの矛盾した制約名が発生することがよくありました。これは、正確な名前を知らずにデフォルトの制約を削除しようとする場合に問題を引き起こします。
解決策
名前を知らずにデフォルトの制約を効果的に削除するには、次のアプローチを使用します。使用可能:
サンプル コード
次のコード サンプルは、説明されているアプローチの実装を提供します。
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 Server のデフォルト制約を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。