DROP DEFAULT (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Entfernt einen oder mehrere benutzerdefinierte Standardwerte aus der aktuellen Datenbank.

Wichtig

DROP DEFAULTwird in der nächsten Version von Microsoft SQL Server entfernt. Verwenden DROP DEFAULT Sie sie nicht in neuen Entwicklungsarbeiten und planen Sie, Anwendungen zu modifizieren, die sie bereits verwenden. Verwenden Sie stattdessen Standarddefinitionen, die Sie mit dem DEFAULT Schlüsselwort von ALTER TABLE oder CREATE TABLEerstellen können.

Transact-SQL-Syntaxkonventionen

Syntax

DROP DEFAULT [ IF EXISTS ] { [ schema_name . ] default_name } [ ,...n ] [ ; ]  

Argumente

WENN EXISTIERT
Gilt für: SQL Server (SQL Server 2016 (13.x) bis zur aktuellen Version).

Löscht die Standardeinstellung nur, wenn diese bereits vorhanden ist.

schema_name
Der Name des Schemas, zu dem der Standardwert gehört.

default_name
Der Name eines vorhandenen Standardwerts. Führen Sie sp_help aus, um eine Liste von vorhandenen Standardwerten anzuzeigen. Standardwerte müssen den Regeln für Bezeichner entsprechen. Das Angeben des Standardschemanamens ist optional.

Hinweise

Bevor ein Standardwert gelöscht wird, muss die Bindung des Standardwerts durch Ausführen von sp_unbindefault aufgehoben werden, wenn der Standardwert aktuell an eine Spalte oder an einen Aliasdatentyp gebunden ist.

Nachdem ein Standardwert aus einer Spalte gelöscht wurde, die NULL-Werte zulässt, wird NULL an dessen Stelle eingefügt, wenn Zeilen hinzugefügt und keine Werte explizit angegeben werden. Nachdem ein Standardwert einer Spalte gelöscht wurde, in der keine NULL-Werte zulässig sind, wird eine Fehlermeldung zurückgegeben, wenn Zeilen hinzugefügt und keine Werte explizit angegeben werden. Diese Zeilen werden später als Teil des typischen INSERT Statement-Verhaltens hinzugefügt.

Berechtigungen

Um auszuführen DROP DEFAULT, muss ein Benutzer mindestens die ALTER-Berechtigung für das Schema haben, zu dem der Standard gehört.

Beispiele

A. Löschen eines Standardwerts

Wenn ein Standard nicht an eine Spalte oder einen Alias-Datentyp gebunden wurde, kann er einfach mit . DROP DEFAULTentfernt werden. Im folgenden Beispiel wird der vom Benutzer erstellte Standardwert datedflt entfernt.

USE AdventureWorks2022;  
GO  
IF EXISTS (SELECT name FROM sys.objects  
         WHERE name = 'datedflt'   
            AND type = 'D')  
   DROP DEFAULT datedflt;  
GO  

Ab SQL Server 2016 (13.x) können Sie folgende Syntax verwenden.

DROP DEFAULT IF EXISTS datedflt;  
GO  

B. Löschen eines Standardwerts, der an eine Spalte gebunden war

Im folgenden Beispiel wird die Bindung des Standardwerts an die EmergencyContactPhone-Spalte in der Contact-Tabelle aufgehoben und dann der Standardwert phonedflt gelöscht.

USE AdventureWorks2022;  
GO  
   BEGIN   
      EXEC sp_unbindefault 'Person.Contact.Phone'  
      DROP DEFAULT phonedflt  
   END;  
GO  

Weitere Informationen

CREATE DEFAULT (Transact-SQL)
sp_helptext (Transact-SQL)
sp_help (Transact-SQL)
sp_unbindefault (Transact-SQL)