ホームページ >データベース >mysql チュートリアル >名前を知らずに SQL Server のデフォルト制約を削除するにはどうすればよいですか?
名前を知らずに SQL のデフォルト制約を削除する
SQL Server では、デフォルト制約は自動的に割り当てられる値を指定する方法です。他の値が指定されていない場合は、列に追加されます。ただし、デフォルトの制約名が不明であるか、タイプが間違っている場合があります。
課題
デフォルトの制約を削除するには、ALTER TABLE DROP CONSTRAINT 構文を使用します。制約名を指定する必要があります。残念ながら、デフォルトの制約に関する情報は、INFORMATION_SCHEMA テーブルからはすぐに入手できません。
解決策
この課題を克服する 1 つのアプローチは、動的 SQL を使用してコマンドを生成することです。スキーマ、テーブル、列の名前に基づいて制約を削除します。以下に例を示します。
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 execute (@Command)
このスクリプトは、提供された情報に基づいて必要な ALTER TABLE DROP CONSTRAINT コマンドを動的に生成し、それを実行し、正確な名前を必要とせずにデフォルトの制約を削除します。
By動的 SQL を利用するこの方法では、事前の知識や誤った制約名による潜在的なエラーを必要とせずに、デフォルトの制約を削除できます。
以上が名前を知らずに SQL Server のデフォルト制約を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。