sp_unbindefault (Transact-SQL)
Se aplica a: SQL Server
Desenlaza o quita un valor predeterminado de una columna o de un tipo de datos alias en la base de datos actual.
Importante
Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Se recomienda crear definiciones predeterminadas mediante la palabra clave DEFAULT en las instrucciones ALTER TABLE o CREATE TABLE en su lugar.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_unbindefault
[ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
Argumentos
[ @objname = ] N'objname'
Nombre de la tabla y columna o el tipo de datos de alias desde el que se va a desenlaar el valor predeterminado. @objname es nvarchar(776), sin ningún valor predeterminado. SQL Server intenta resolver primero los identificadores de dos partes en los nombres de columna y, después, en los tipos de datos de alias.
Cuando se desenlaza un valor predeterminado de un tipo de datos alias, también se desenlaza cualquier columna de ese tipo de datos que tenga el mismo valor predeterminado. Las columnas de ese tipo de datos cuyos valores predeterminados estén directamente enlazados a ellas no se ven afectadas.
Nota:
@objname pueden contener corchetes []
como caracteres de identificador delimitados. Para obtener más información, consulte Identificadores de base de datos.
[ @futureonly = ] 'futureonly'
Solo se usa al desenlace de un valor predeterminado de un tipo de datos de alias. @futureonly es varchar(15), con un valor predeterminado de NULL
. Cuando @futureonly es futureonly
, las columnas existentes del tipo de datos no pierden el valor predeterminado especificado.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Comentarios
Para mostrar el texto de un valor predeterminado, ejecute sp_helptext
con el nombre del valor predeterminado como parámetro .
Permisos
Para desenlazar un valor predeterminado de una columna de la tabla, es necesario el permiso ALTER en la tabla. Para desenlazar un valor predeterminado de un tipo de datos alias, se requiere el permiso CONTROL en el tipo o el permiso ALTER del esquema al que pertenece el tipo.
Ejemplos
A Desenlace un valor predeterminado de una columna
En el siguiente ejemplo se desenlaza el valor predeterminado de la columna hiredate
de una tabla employees
.
EXEC sp_unbindefault 'employees.hiredate';
B. Desenlace un valor predeterminado de un tipo de datos de alias
En el siguiente ejemplo se desenlaza el valor predeterminado del tipo de datos alias ssn
. Desenlaza las columnas de ese tipo existentes y futuras.
EXEC sp_unbindefault 'ssn';
C. Uso del futureonly_flag
En el siguiente ejemplo se desenlazan futuros usos del tipo de datos alias ssn
sin que ello afecte a las columnas ssn
existentes.
EXEC sp_unbindefault 'ssn', 'futureonly';
D. Uso de identificadores delimitados
En el ejemplo siguiente se muestra el uso de identificadores delimitados en @objname parámetro. Observe el punto como parte del nombre de la tabla. En la sp_unbindefault
parte, el objeto contiene dos puntos; la primera forma parte del nombre de la tabla y la segunda distingue el nombre de la tabla del nombre de la columna.
--
CREATE TABLE [t.3] (c1 INT);
CREATE DEFAULT default2 AS 0;
GO
EXEC sp_bindefault 'default2', '[t.3].c1';
EXEC sp_unbindefault '[t.3].c1';