DROP DEFAULT (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Tar bort en eller flera användardefinierade standardinställningar från den aktuella databasen.

Important

DROP DEFAULTkommer att tas bort i nästa version av Microsoft SQL Server. Använd inte DROP DEFAULT i nytt utvecklingsarbete och planera att modifiera applikationer som för närvarande använder dem. Använd istället standarddefinitioner som du kan skapa genom att använda DEFAULT nyckelordet eller ALTER TABLECREATE TABLE.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

OM DET FINNS
Gäller för: SQL Server (SQL Server 2016 (13.x) via den aktuella versionen).

Villkorligt släpper standarden endast om den redan finns.

schema_name
Är namnet på schemat som standarden tillhör.

default_name
Är namnet på en befintlig standard. För att se en lista över standardinställningar som finns, kör sp_help. Standardinställningar måste följa reglerna för identifierare. Att ange standardnamnet på schemat är valfritt.

Remarks

Innan du släpper en standard, avbind standarden genom att köra sp_unbindefault om standarden för närvarande är bunden till en kolumn eller en aliasdatatyp.

Efter att en standard tagits bort från en kolumn som tillåter nullvärden, infogas NULL på den platsen när rader läggs till och inget värde tillhandahålls uttryckligen. Efter att en standard tagits bort från en INTE NULL-kolumn returneras ett felmeddelande när rader läggs till och inget värde uttryckligen angavs. Dessa rader läggs till senare som en del av det typiska INSERT uttalandesbeteendet.

Permissions

För att köra DROP DEFAULT, måste en användare minst ha ALTER-behörighet på det schema som standarden tillhör.

Examples

A. Att släppa en standard

Om en standard inte har bundits till en kolumn eller till en alias-datatyp kan den helt enkelt tas bort med hjälp av DROP DEFAULT. Följande exempel tar bort det användarskapade standardnamnet datedflt.

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

Från och med SQL Server 2016 (13.x) kan du använda följande syntax.

DROP DEFAULT IF EXISTS datedflt;  
GO  

B. Att ta bort en standardfunktion som har bundits till en kolumn

Följande exempel avbinder standarden som är kopplad till kolumnen EmergencyContactPhone i Contact tabellen och tar sedan bort standarden med namnet phonedflt.

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

Se även

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