sp_unbindrule (Transact-SQL)

Gilt für:SQL Server

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

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Es wird empfohlen, Standarddefinitionen stattdessen mithilfe der DEFAULT-Schlüsselwort (keyword) in den ALTER TABLE- oder CREATE TABLE-Anweisungen zu erstellen.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @objname = ] N'objname'

Der Name der Tabelle und Spalte oder des Aliasdatentyps, von dem die Regel ungebunden ist. @objname ist nvarchar(776), ohne Standard. SQL Server versucht, zweiteilige IDs zuerst in Spaltennamen aufzulösen und dann zu Aliasdatentypen. 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.

Hinweis

@objname können Klammern [] als durch Trennzeichen getrennte Bezeichnerzeichen enthalten. Weitere Informationen finden Sie unter Datenbankbezeichner.

[ @futureonly = ] 'futureonly'

Wird nur verwendet, wenn die Verknüpfung einer Regel von einem Aliasdatentyp getrennt wird. @futureonly ist varchar(15) mit einem Standardwert von NULL. Wenn @futureonly ist futureonly, verlieren vorhandene Spalten dieses Datentyps nicht die angegebene Regel.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

Um den Text einer Regel anzuzeigen, führen Sie sp_helptext den Regelnamen als Parameter aus.

Wenn eine Regel ungebunden ist, werden die Informationen zur Bindung 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 wurde.

Wenn eine Regel von einem Aliasdatentyp ungebunden ist, ist sie auch von allen Spalten mit diesem Aliasdatentyp ungebunden. Die Regel kann auch weiterhin an Spalten gebunden sein, deren Datentypen später durch die ALTER COLUMN-Klausel einer ALTER TABLE-Anweisung geändert wurden. Sie müssen die Regel explizit aus diesen Spalten entfernen, indem Sie den Spaltennamen verwenden sp_unbindrule und angeben.

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 Verknüpfung einer Regel aus einer 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 Verknüpfung einer Regel aus einem 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 durch Trennzeichen getrennten Bezeichnern

Das folgende Beispiel zeigt die Verwendung von durch Trennzeichen getrennten Bezeichnern im @objname-Parameter . Beachten Sie den Punkt als Teil des Tabellennamens. sp_bindrule Im Teil enthält das Objekt zwei Punkte; der erste Teil des Tabellennamens und der zweite unterscheidet den Tabellennamen von dem Spaltennamen.

CREATE TABLE [t.4] (c1 int);
GO
CREATE RULE rule2 AS @value > 100;
GO
EXEC sp_bindrule rule2, '[t.4].c1'
GO
EXEC sp_unbindrule '[t.4].c1';