Frage

Das Ausführen der folgenden Abfrage führt zu allen Einschränkungen in der Datenbank unseres Kunden.Allerdings scheinen mehrere Zeilen in der Ergebnismenge kein übergeordnetes Element zu haben, d. h. parent_object_id = 0 Und OBJECT_NAME(parent_object_id) kehrt zurück NULL.

SELECT name, type_desc, OBJECT_NAME(parent_object_id), parent_object_id
FROM sys.objects
WHERE is_ms_shipped = 0
AND type_desc LIKE '%_CONSTRAINT'

Bedeutet das, dass die Datenbank verwaiste Einschränkungen enthält?Wenn ja, wie entferne ich diese?

Anhand ihrer Namen kann ich erkennen, dass es sich um Überbleibsel aus der Zeit handelt, bevor große Änderungen an der Struktur vorgenommen wurden.

War es hilfreich?

Lösung

Benutzen sp_helptext Ich kann sehen, dass sie mit a erstellt wurden CREATE DEFAULT Aussage, z.B.:

CREATE DEFAULT dbo.MyDefault AS 2

Dies bedeutet, dass es sich einfach um ungebundene Standardwerte handelt, die mit dem gebunden werden können sp_binddefault entsprechend MSDN, und mit einem einfachen entfernt DROP DEFAULT Stellungnahme:

DROP DEFAULT dbo.MyDefault

Mir war diese Syntax nicht bekannt, die laut dem oben genannten MSDN-Artikel offenbar in einer zukünftigen Version von SQL Server entfernt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top