Heim > Datenbank > MySQL-Tutorial > Wie lösche ich eine SQL Server-Standardeinschränkung, ohne ihren Namen zu kennen?

Wie lösche ich eine SQL Server-Standardeinschränkung, ohne ihren Namen zu kennen?

Barbara Streisand
Freigeben: 2025-01-02 17:17:39
Original
412 Leute haben es durchsucht

How to Drop a SQL Server Default Constraint Without Knowing Its Name?

SQL-Standardeinschränkungen löschen, ohne den Namen zu kennen

In SQL Server sind Standardeinschränkungen eine Möglichkeit, einen Wert anzugeben, der automatisch zugewiesen wird zu einer Spalte, wenn kein anderer Wert angegeben wird. Es kann jedoch Situationen geben, in denen der Name der Standardeinschränkung unbekannt ist oder falsch eingegeben wurde.

Die Herausforderung

Um eine Standardeinschränkung zu löschen, verwenden Sie die ALTER TABLE DROP CONSTRAINT-Syntax erfordert die Angabe des Einschränkungsnamens. Leider sind Informationen zu Standardeinschränkungen nicht ohne weiteres über die Tabelle INFORMATION_SCHEMA verfügbar.

Die Lösung

Ein Ansatz zur Bewältigung dieser Herausforderung besteht darin, dynamisches SQL zum Generieren des Befehls zu verwenden um die Einschränkung basierend auf den Schema-, Tabellen- und Spaltennamen zu löschen. Hier ist ein Beispiel:

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)
Nach dem Login kopieren

Dieses Skript generiert den erforderlichen ALTER TABLE DROP CONSTRAINT-Befehl dynamisch basierend auf den bereitgestellten Informationen und führt ihn aus, wobei die Standardeinschränkung entfernt wird, ohne dass der genaue Name erforderlich ist.

Von Unter Verwendung von dynamischem SQL ermöglicht diese Methode das Entfernen von Standardeinschränkungen, ohne dass Vorkenntnisse erforderlich sind oder potenzielle Fehler aufgrund falscher Einschränkungsnamen auftreten können.

Das obige ist der detaillierte Inhalt vonWie lösche ich eine SQL Server-Standardeinschränkung, ohne ihren Namen zu kennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage