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.

Nota importanteImportante

Esta característica se quitará en la versión siguiente de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible 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 de la columna o el tipo de datos del alias del que se tiene que desenlazar la regla. object_name es de tipo nvarchar(776) y no tiene 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 incluir 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 usa cuando se desenlaza 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.

Valores de código de retorno

0 (correcto) o 1 (error)

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.

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 siguiente ejemplo 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'