Freigeben über


sp_unbindrule (Transact-SQL)

Hebt die Bindung einer Regel an eine Spalte oder einen Aliasdatentyp in der aktuellen Datenbank auf.

Wichtiger HinweisWichtig

Diese Funktion wird in der nächsten Version von Microsoft SQL Server entfernt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie so bald wie möglich das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Es wird empfohlen, dass Sie stattdessen mithilfe des DEFAULT-Schlüsselworts in den ALTER TABLE- oder CREATE TABLE-Anweisungen Standarddefinitionen erstellen. Weitere Informationen finden Sie unter Erstellen und Ändern von DEFAULT-Definitionen.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @objname= ] 'object_name'
    Der Name der Tabelle und Spalte bzw. der Aliasdatentyp, von der bzw. dem die Regel entfernt wird. object_name ist vom Datentyp nvarchar(776) und hat keinen Standardwert. SQL Server versucht, zweiteilige Bezeichner zuerst nach Spaltennamen und dann nach Aliasdatentypen aufzulösen.Beim Aufheben der Bindung einer Regel an einen Aliasdatentyp wird auch die Bindung für alle Spalten des betreffenden Datentyps, die dieselbe Regel aufweisen, aufgehoben. Spalten dieses Datentyps mit Regeln, die direkt an diese gebunden sind, sind nicht betroffen.

    HinweisHinweis

    object_name kann eckige Klammern [] als begrenzte Bezeichnerzeichen enthalten.Weitere Informationen finden Sie unter Begrenzte Bezeichner (Datenbankmodul).

  • [ @futureonly= ] 'futureonly_flag'
    Wird nur verwendet, wenn die Bindung einer Regel an einen Aliasdatentyp aufgehoben wird. futureonly_flag ist vom Datentyp varchar(15) und hat den Standardwert NULL. Wenn futureonly_flag für futureonly angegeben ist, verlieren vorhandene Spalten dieses Datentyps nicht die angegebene Regel.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

Führen Sie sp_helptext mit dem Namen einer Regel als Parameter aus, um den Text der Regel anzuzeigen.

Beim Aufheben der Bindung einer Regel werden die Bindungsinformationen aus der sys.columns-Tabelle entfernt, wenn die Regel an eine Spalte gebunden war, und aus der sys.types-Tabelle, wenn die Regel an einen Aliasdatentyp gebunden war.

Beim Aufheben der Bindung einer Regel an einen Aliasdatentyp wird auch die Bindung an alle Spalten mit diesem Aliasdatentyp aufgehoben. Die Regel ist möglicherweise auch noch an Spalten gebunden, deren Datentypen später mit der ALTER COLUMN-Klausel einer ALTER TABLE-Anweisung geändert wurden. Sie müssen die Bindung der Regel für diese Spalten eigens mithilfe von sp_unbindrule und unter Angabe des Spaltennamens aufheben.

Berechtigungen

Zum Aufheben der Bindung einer Regel an eine Tabellenspalte ist die ALTER-Berechtigung für die Tabelle erforderlich. Zum Aufheben der Bindung einer Regel an einen Aliasdatentyp ist die CONTROL-Berechtigung für den Typ oder die ALTER-Berechtigung für das Schema erforderlich, zu dem der Typ gehört.

Beispiele

A. Aufheben der Bindung einer Regel an eine Spalte

Das folgende Beispiel hebt die Bindung der Regel an die startdate-Spalte einer employees-Tabelle auf.

EXEC sp_unbindrule 'employees.startdate'

B. Aufheben der Bindung einer Regel an einen Aliasdatentyp

Das folgende Beispiel hebt die Bindung der Regel an den ssn-Aliasdatentyp auf. Die Bindungen der Regel an vorhandene und zukünftige Spalten dieses Typs werden aufgehoben.

EXEC sp_unbindrule ssn

C. Verwenden von futureonly_flag

Das folgende Beispiel hebt die Bindung der Regel an den ssn-Aliasdatentyp auf, ohne dass vorhandene ssn-Spalten davon beeinflusst werden.

EXEC sp_unbindrule 'ssn', 'futureonly'

D. Verwenden von begrenzten Bezeichnern

Im folgenden Beispiel wird die Verwendung von begrenzten Bezeichnern im object_name -Parameter gezeigt.

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'