Heim >Datenbank >MySQL-Tutorial >Wie lösche ich Standardeinschränkungen in SQL Server, wenn ihre Namen unbekannt sind?

Wie lösche ich Standardeinschränkungen in SQL Server, wenn ihre Namen unbekannt sind?

Barbara Streisand
Barbara StreisandOriginal
2025-01-03 18:56:39232Durchsuche

How to Drop Default Constraints in SQL Server When Their Names Are Unknown?

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!

Stellungnahme:
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