sys.sp_unbindrule (Transact-SQL)

Gäller för:SQL Server

Binder bort en regel från en kolumn eller en aliasdatatyp i den aktuella databasen.

Important

Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Vi rekommenderar att du skapar standarddefinitioner genom att använda DEFAULT nyckelordet i eller-satserna ALTER TABLECREATE TABLE istället.

Transact-SQL syntaxkonventioner

Syntax

sys.sp_unbindrule
    [ @objname = ] N'objname'
    [ , [ @futureonly = ] 'futureonly' ]
[ ; ]

Arguments

[ @objname = ] N'objname'

Namnet på tabellen och kolumnen eller aliasdatatypen som regeln är obunden från. @objname är nvarchar(776), utan standard. SQL Server försöker matcha tvådelade identifierare med kolumnnamn först och sedan till aliasdatatyper. När man avbinder en regel från en alias-datatyp är alla kolumner i datatypen som har samma regel också obundna. Kolumner av den datatypen med regler direkt bundna till dem påverkas inte.

Anmärkning

@objname kan innehålla hakparenteser [] som avgränsade identifierartecken. Mer information finns i Databasidentifierare.

[ @futureonly = ] "futureonly"

Används endast när man avbinder en regel från en aliasdatatyp. @futureonly är varchar(15), med standardvärdet .NULL När @futureonly är futureonly, förlorar inte befintliga kolumner av den datatypen den specificerade regeln.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

För att visa texten i en regel, kör sp_helptext med regelnamnet som parameter.

När en regel är obunden tas informationen om bindningen bort från sys.columns tabellen om regeln var bunden till en kolumn, och från sys.types tabellen om regeln var bunden till en aliasdatatyp.

När en regel är obunden från en aliasdatatyp är den också obunden från alla kolumner som har den aliasdatatypen. Regeln kan också fortfarande vara bunden till kolumner vars datatyper senare ändrades av ALTER COLUMN-klausulen i ett ALTER TABLE uttalande, du måste specifikt avbinda regeln från dessa kolumner genom att använda sp_unbindrule och specificera kolumnnamnet.

Permissions

För att avbinda en regel från en tabellkolumn krävs ALTER-behörighet på tabellen. För att avbinda en regel från en alias-datatyp krävs CONTROL-behörighet på typen eller ALTER-behörighet på schemat som typen tillhör.

Exempel

A. Koppla upp en regel från en kolumn

Följande exempel avbinder regeln från kolumnen startdate i en employees tabell.

EXECUTE sp_unbindrule 'employees.startdate';

B. Avbind en regel från en aliasdatatyp

Följande exempel frigör regeln från aliasdatatypen ssn. Den frigör regeln från befintliga och framtida kolumner av den typen.

EXECUTE sp_unbindrule ssn;

C. Använd futureonly_flag

Följande exempel frigör regeln från aliasdatatypen ssn utan att påverka befintliga ssn kolumner.

EXECUTE sp_unbindrule 'ssn', 'futureonly';

D. Använd avgränsade identifierare

Följande exempel visar användningen av avgränsade identifierare i @objname-parametern . Notera punkten som en del av tabellnamnet. I sp_bindrule delen innehåller objektet två punkter; den första är en del av tabellnamnet, och den andra skiljer tabellnamnet från kolumnnamnet.

CREATE TABLE [t.4] (c1 INT);
GO

CREATE RULE rule2 AS @value > 100;
GO

EXECUTE sp_bindrule rule2, '[t.4].c1';
GO

EXECUTE sp_unbindrule '[t.4].c1';