ホームページ >データベース >mysql チュートリアル >名前が不明な場合に SQL Server のデフォルトの制約を削除するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。