Compartir a través de


sp_unbindrule (Transact-SQL)

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

ms190354.note(es-es,SQL.90).gifImportante:
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. Es recomendable crear las definiciones predeterminadas utilizando la palabra clave DEFAULT en las instrucciones 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

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

Argumentos

[ @objname= ] 'object_name'

Es el nombre de la tabla y la columna o del tipo de datos de alias desde el que se deshace el enlace de la regla. object_name es nvarchar(776) y no tiene valores predeterminados. SQL Server trata de resolver los identificadores en dos partes, primero en los nombres de columna y luego los 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 identificadores delimitados. Para obtener más información, vea Identificadores delimitados (motor de base de datos).

[ @futureonly= ] 'futureonly_flag'

Sólo se utiliza cuando se deshace el enlace de una regla de un tipo de datos de alias. futureonly_flag es de tipo varchar(15) y su valor predeterminado es NULL. Cuando futureonly_flag es de tipo futureonly, las columnas existentes de ese tipo de datos no pierden la regla especificada.

Notas

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

Cuando se deshace el enlace de una regla, la información del 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 podría seguir estando enlazada a columnas cuyos tipos de datos se han cambiado posteriormente mediante la cláusula ALTER COLUMN de una instrucción ALTER TABLE; en ese caso, debe deshacer específicamente el enlace de la regla de estas columnas mediante sp_unbindrule y especificar el nombre de la 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.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplos

A. Deshacer el enlace de 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. Deshacer el enlace de 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. Utilizar identificadores delimitados

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

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'

Vea también

Referencia

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005