DROP DEFAULT (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Remove um ou mais padrões definidos pelo usuário do banco de dados atual.

Importante

A instrução DROP DEFAULT será removida na próxima versão do Microsoft SQL Server. Não use DROP DEFAULT em um novo trabalho de desenvolvimento e planeje modificar os aplicativos que atualmente a utilizam. Em vez disso, use as definições padrão que você pode criar com a palavra-chave DEFAULT de ALTER TABLE ou CREATE TABLE.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

IF EXISTS
Aplica-se a: SQL Server (SQL Server 2016 (13.x) até a versão atual).

Remove condicionalmente o padrão somente se ele já existe.

schema_name
É o nome do esquema ao qual o padrão pertence.

default_name
É o nome de um padrão existente. Para ver uma lista dos padrões existentes, execute sp_help. Os padrões devem seguir as regras de identificadores. Especificar o nome do esquema padrão é opcional.

Comentários

Antes de remover um padrão, desassocie-o executando sp_unbindefault se ele estiver atualmente associado a uma coluna ou a um tipo de dados de alias.

Depois que um padrão é descartado de uma coluna que permite valores nulos, NULL é inserido nessa posição quando as linhas são adicionadas e nenhum valor é explicitamente fornecido. Depois que um padrão é descartado de uma coluna NOT NULL, uma mensagem de erro é retornada quando as linhas são adicionadas e nenhum valor é explicitamente fornecido. Estas linhas são adicionadas posteriormente como parte do comportamento da instrução INSERT típica.

Permissões

Para executar DROP DEFAULT, no mínimo, um usuário deve ter a permissão ALTER no esquema ao qual o padrão pertence.

Exemplos

a. Descartando um padrão

Se um padrão não estiver associado a uma coluna ou a um tipo de dados de alias, ele só poderá ser descartado usando DROP DEFAULT. O exemplo a seguir remove o padrão criado pelo usuário chamado datedflt.

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

Começando pelo SQL Server 2016 (13.x), você pode usar a sintaxe a seguir.

DROP DEFAULT IF EXISTS datedflt;  
GO  

B. Descartando um padrão associado a uma coluna

O exemplo a seguir desassocia o padrão associado à coluna EmergencyContactPhone da tabela Contact e descarta o padrão chamado phonedflt.

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

Consulte Também

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