Hintergrund
SQL Server ermöglicht die Erstellung von Standardeinschränkungen für Spalten . In früheren Versionen führten Tippfehler jedoch häufig zu inkonsistenten Einschränkungsnamen, z. B. „DF_SomeTable_ColName“ und „DF_SmoeTable_ColName“. Dies stellt eine Herausforderung dar, wenn versucht wird, eine Standardeinschränkung zu löschen, ohne ihren genauen Namen zu kennen.
Lösung
Um eine Standardeinschränkung effektiv zu entfernen, ohne ihren Namen zu kennen, verwenden Sie den folgenden Ansatz kann verwendet werden:
Beispielcode
Das folgende Codebeispiel bietet eine Implementierung des beschriebenen Ansatzes:
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)
Durch die Verwendung dieser Technik können Standardeinschränkungen dynamisch entfernt werden, unabhängig von durch Tippfehler verursachten Namensinkonsistenzen. Dieser Ansatz stellt sicher, dass Einschränkungen erfolgreich gelöscht werden, ohne dass Fehler aufgrund unbekannter Einschränkungsnamen auftreten.
Das obige ist der detaillierte Inhalt vonWie lösche ich SQL Server-Standardeinschränkungen, ohne deren Namen zu kennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!