Heim > Datenbank > MySQL-Tutorial > Wie kann man SQL-Standardeinschränkungen löschen, ohne deren Namen zu kennen?

Wie kann man SQL-Standardeinschränkungen löschen, ohne deren Namen zu kennen?

Patricia Arquette
Freigeben: 2024-12-30 18:18:13
Original
374 Leute haben es durchsucht

How to Drop SQL Default Constraints Without Knowing Their Names?

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

In SQL Server kann das Identifizieren und Löschen von Standardeinschränkungen eine Herausforderung sein, insbesondere wenn ihre Namen so sind unbekannt oder inkonsistent. Um dieses Problem anzugehen, kann die dynamische Abfragegenerierung eingesetzt werden, um Standardeinschränkungen effektiv zu identifizieren und zu entfernen.

Erweiterte Antwort:

Erweitert das von Mitch Wheat geteilte Skript, noch mehr Der umfassende Ansatz beinhaltet die dynamische Generierung und Ausführung des DROP CONSTRAINT-Befehls. So funktioniert es:

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

Erklärung:

  • Dieses Skript erstellt dynamisch den Befehl DROP CONSTRAINT, indem es die Metadatentabellen (sys.tables, sys .default_constraints und sys.columns).
  • Es gibt die an Schemaname, Tabellenname und Spaltenname, um die Ziel-Standardeinschränkung zu identifizieren.
  • Der generierte Befehl wird dann gedruckt und dynamisch ausgeführt, sodass Sie die Standardeinschränkung löschen können, ohne ihren genauen Namen zu kennen.

Vorteile:

  • Behandelt inkonsistent benannte Einschränkungen, wie z „DF_SomeTable_ColName“ oder „DF_SmoeTable_ColName“ >

Das obige ist der detaillierte Inhalt vonWie kann man SQL-Standardeinschränkungen löschen, ohne deren 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