Heim >Datenbank >MySQL-Tutorial >Wie lösche ich Standardeinschränkungen in SQL Server, wenn ihre Namen unbekannt sind?
Löschen von Standardeinschränkungen mit unbekannten Namen in Microsoft SQL Server
Diese Frage befasst sich mit der Herausforderung, Standardeinschränkungen aus SQL-Tabellen zu entfernen, wenn deren Namen vorhanden sind unbekannt, aufgrund möglicher Tippfehler. Die vom Benutzer bereitgestellte vorhandene Abfrage erfordert zur Ausführung den genauen Einschränkungsnamen, was in bestimmten Situationen problematisch sein kann.
Die Lösung
Die vorgeschlagene Lösung umfasst Generieren und Ausführen eines dynamischen SQL-Befehls zum Löschen der Einschränkung basierend auf den bereitgestellten Tabellen-, Spalten- und Schemainformationen. Der vom Benutzer freigegebene Codeausschnitt kann wie folgt erweitert werden:
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)
Dieser Code generiert den erforderlichen SQL-Befehl, um die Standardeinschränkung für eine bestimmte Tabelle und Spalte in einem bestimmten Schema zu löschen. Der Befehl wird dynamisch auf der Grundlage der bereitgestellten Parameter erstellt, um sicherzustellen, dass er ohne SQL-Fehler ausgeführt werden kann, selbst wenn der Einschränkungsname unbekannt ist.
Das obige ist der detaillierte Inhalt vonWie lösche ich Standardeinschränkungen in SQL Server, wenn ihre Namen unbekannt sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!