sp_unbindrule (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas)

Deshace el enlace de una regla de una columna o de un tipo de datos del alias en la base de datos actual.

Importante

Esta característica se quitará en una versión futura de Microsoft 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 ALTER TABLE o CREATE TABLE instrucciones en su lugar.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

  
sp_unbindrule [ @objname = ] 'object_name'   
     [ , [ @futureonly = ] 'futureonly_flag' ]  

Argumentos

[ @objname = ] 'object_name' Es el nombre de la tabla y columna o el tipo de datos de alias del que se desenlazó la regla. object_name es nvarchar(776), sin ningún valor predeterminado. SQL Server intenta resolver los identificadores de dos partes en nombres de columna en primer lugar, y después en tipos de datos de alias. Cuando se deshace el enlace de una regla de un tipo de datos de alias, también se deshace el enlace de las columnas de ese tipo de datos que tengan la misma regla. Las columnas de ese tipo de datos con reglas directamente enlazadas a ellas no se ven afectadas.

Nota

object_name puede contener corchetes [] como caracteres de identificador delimitados. Para obtener más información, vea Database Identifiers.

[ @futureonly = ] 'futureonly_flag' Solo se usa cuando se desenlace una regla de un tipo de datos de alias. futureonly_flag es varchar(15), con un valor predeterminado de NULL. Cuando futureonly_flag es futureonly, las columnas existentes de ese tipo de datos no pierden la regla especificada.

Valores de código de retorno

0 (correcto) o 1 (error)

Observaciones

Para que se muestre el texto de una regla, ejecute sp_helptext con el nombre de la regla como parámetro.

Cuando una regla no está enlazada, la información sobre el enlace se quita de la tabla sys.columns si la regla estaba enlazada a una columna y de la tabla sys.types si la regla estaba enlazada a un tipo de datos de alias.

Cuando se deshace el enlace de una regla de un tipo de datos de alias, también se deshace el enlace de las columnas que tengan ese tipo de datos de alias. La regla también puede enlazarse a columnas cuyos tipos de datos se cambiaron más adelante mediante la cláusula ALTER COLUMN de una instrucción ALTER TABLE; debe desenlazar específicamente la regla de estas columnas mediante sp_unbindrule y especificando el nombre de columna.

Permisos

Para deshacer el enlace de una regla de una columna de tabla es necesario el permiso ALTER para la tabla. Para deshacer el enlace de una regla de un tipo de datos de alias es necesario el permiso CONTROL para el tipo o el permiso ALTER para el esquema al que pertenece el tipo.

Ejemplos

A. Desenlazar una regla de una columna

En el siguiente ejemplo se deshace el enlace de la columna startdate de una tabla employees.

EXEC sp_unbindrule 'employees.startdate';  

B. Desenlazar una regla de un tipo de datos de alias

En el siguiente ejemplo se deshace el enlace de la regla del tipo de datos de alias ssn. Deshace el enlace de la regla de las columnas de ese tipo existentes y futuras.

EXEC sp_unbindrule ssn;  

C. Utilizar futureonly_flag

En el siguiente ejemplo se deshace el enlace de la regla del tipo de datos de alias ssn sin afectar a las columnas ssn existentes.

EXEC sp_unbindrule 'ssn', 'futureonly';  

D. Uso de identificadores delimitados

En el ejemplo siguiente se muestra el uso de identificadores delimitados en object_name parámetro .

CREATE TABLE [t.4] (c1 int); -- Notice the period as part of the table   
-- name.  
GO  
CREATE RULE rule2 AS @value > 100;  
GO  
EXEC sp_bindrule rule2, '[t.4].c1' -- The object contains two   
-- periods; the first is part of the table name and the second   
-- distinguishes the table name from the column name.  
GO  
EXEC sp_unbindrule '[t.4].c1';  

Consulte también

Procedimientos almacenados del sistema (Transact-SQL)
Motor de base de datos Procedimientos almacenados (Transact-SQL)
CREATE RULE (Transact-SQL)
DROP RULE (Transact-SQL)
sp_bindrule (Transact-SQL)
sp_helptext (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)