ホームページ >データベース >mysql チュートリアル >名前が不明な場合に SQL Server のデフォルトの制約を削除するにはどうすればよいですか?

名前が不明な場合に SQL Server のデフォルトの制約を削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-03 18:56:39232ブラウズ

How to Drop Default Constraints in SQL Server When Their Names Are Unknown?

Microsoft SQL Server で不明な名前のデフォルト制約を削除する

この質問は、名前が不明な場合に SQL テーブルからデフォルト制約を削除するという課題に対処します。タイプミスの可能性があるため不明です。ユーザーが指定した既存のクエリには、実行に正確な制約名が必要であり、特定の状況では問題が発生する可能性があります。

解決策

提案される解決策には以下が含まれます。提供されたテーブル、列、およびスキーマ情報に基づいて制約を削除するための動的 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

--print @Command

execute (@Command)

このコードは、特定のスキーマの特定のテーブルと列のデフォルト制約を削除するために必要な SQL コマンドを生成します。コマンドは指定されたパラメーターに基づいて動的に構築されるため、制約名が不明な場合でも SQL エラーなしで実行できることが保証されます。

以上が名前が不明な場合に SQL Server のデフォルトの制約を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。