在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中文網其他相關文章!