Partilhar via


sp_unbindrule (Transact-SQL)

Desassocia uma regra de uma coluna ou de um tipo de dados de alias no banco de dados atual.

Observação importanteImportante

Esse recurso será removido na próxima versão do Microsoft SQL Server. Não utilize esse recurso em desenvolvimentos novos e modifique, assim que possível, os aplicativos que atualmente o utilizam. Em vez disso, recomendamos criar definições padrão usando a palavra-chave DEFAULT nas instruções ALTER TABLE ou CREATE TABLE. Para obter mais informações, consulte Criando e modificando definições DEFAULT.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @objname= ] 'object_name'
    É o nome da tabela e da coluna ou o tipo de dados do alias do qual a regra é desassociada. object_name é nvarchar(776), sem nenhum padrão. SQL Server tenta resolver os identificadores de duas partes, primeiro, para os nomes de coluna e, depois, para tipos de dados de alias. Ao desassociar uma regra de um tipo de dados de alias, as colunas do tipo de dados que tiverem a mesma regra também serão desassociadas. As colunas desse tipo de dados com regras associadas diretamente não serão afetadas.

    ObservaçãoObservação

    object_name pode conter colchetes [] como caracteres de identificador delimitados. Para obter mais informações, consulte Identificadores delimitados (Mecanismo de Banco de Dados).

  • [ @futureonly= ] 'futureonly_flag'
    É usado apenas ao desassociar uma regra de um tipo de dados de alias futureonly_flag é varchar(15), com um padrão NULL. Quando futureonly_flag é futureonly, as colunas existentes desse tipo de dados não perdem a regra especificada.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

Para exibir o texto de uma regra, execute sp_helptext com o nome da regra como o parâmetro.

Quando uma regra é desassociada, as informações sobre a associação são removidas da tabela sys.columns quando a regra está associada a uma coluna e da tabela sys.types quando ela está associada a um tipo de dados de alias.

Quando uma regra é desassociada de um tipo de dados de alias, ela também é desassociada das colunas com esse tipo de dados de alias. A regra também pode estar associada a colunas cujos tipos de dados tenham sido alterados posteriormente pela cláusula ALTER COLUMN de uma instrução ALTER TABLE; para desassociar especificamente a regra dessas colunas, use sp_unbindrule e especifique o nome da coluna.

Permissões

Para desassociar uma regra de uma coluna de tabela, é necessário ter a permissão ALTER na tabela. Para desassociar uma regra de um tipo de dados de alias, é necessário ter a permissão CONTROL no tipo ou a permissão ALTER no esquema ao qual o tipo pertence.

Exemplos

A. Desassociando uma regra de uma coluna

O exemplo a seguir desassocia a regra da coluna startdate de uma tabela employees.

EXEC sp_unbindrule 'employees.startdate'

B. Desassociando uma regra de um tipo de dados de alias

O exemplo a seguir desassocia a regra do tipo de dados de alias ssn. Ele desassocia a regra de colunas desse tipo, existentes e futuras.

EXEC sp_unbindrule ssn

C. Usando futureonly_flag

O exemplo a seguir desassocia a regra do tipo de dados de alias ssn sem afetar as colunas ssn existentes.

EXEC sp_unbindrule 'ssn', 'futureonly'

D. Usando identificadores delimitados

O exemplo a seguir mostra o uso de identificadores delimitados no 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'