DROP DEFAULT (Transact-SQL)

Quita uno o más valores predeterminados definidos por el usuario de la base de datos actual.

Nota importanteImportante

DROP DEFAULT se quitará en la siguiente versión de Microsoft SQL Server. No use DROP DEFAULT en un nuevo trabajo de desarrollo y piense en modificar las aplicaciones que actualmente utilizan esta función. En su lugar, utilice definiciones predeterminadas que puede crear utilizando la palabra clave DEFAULT de ALTER TABLE o CREATE TABLE. Para obtener más información, vea Crear y modificar definiciones DEFAULT.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • schema_name
    Es el nombre del esquema al que pertenece el valor predeterminado.

  • default_name
    Es el nombre de un valor predeterminado existente. Para ver la lista de valores predeterminados existentes, ejecute sp_help. Los valores predeterminados deben seguir las reglas de los identificadores. Especificar el nombre del esquema predeterminado es opcional.

Comentarios

Antes de quitar un valor predeterminado, cancele el enlace del valor predeterminado; para ello, ejecute sp_unbindefault (si el valor predeterminado está enlazado actualmente a una columna o un tipo de datos de alias).

Después de quitar un valor predeterminado de una columna que permite valores nulos, se inserta NULL en esa posición cuando se agregan filas y no se proporciona un valor explícitamente. Después de quitar un valor predeterminado de una columna NOT NULL, se devuelve un mensaje de error cuando se agregan filas y no se proporciona un valor explícitamente. Estas filas se agregan posteriormente como parte del comportamiento habitual de la instrucción INSERT.

Permisos

Para ejecutar DROP DEFAULT, como mínimo, un usuario debe tener permiso ALTER en el esquema al que pertenece el valor predeterminado.

Ejemplos

A. Quitar un valor predeterminado

Si no se ha enlazado un valor predeterminado a una columna o a un tipo de datos de alias, se puede quitar simplemente con DROP DEFAULT. El siguiente ejemplo quita un valor predeterminado creado por el usuario denominado datedflt.

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

B. Quitar un valor predeterminado enlazado a una columna

El siguiente ejemplo cancela el enlace del valor predeterminado asociado con la columna EmergencyContactPhone de la tabla Employee y, a continuación, quita el valor predeterminado denominado phonedflt.

USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.objects
         WHERE name = 'phonedflt' 
            AND type = 'D')
   BEGIN 
      EXEC sp_unbindefault 'Person.PersonPhone'
      DROP DEFAULT phonedflt
   END
GO