sp_unbindrule (Transact-SQL)
Hebt die Bindung einer Regel an eine Spalte oder einen Aliasdatentyp in der aktuellen Datenbank auf.
Wichtig |
---|
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 der ALTER TABLE-Anweisung oder CREATE TABLE-Anweisung Standarddefinitionen erstellen. |
Transact-SQL-Syntaxkonventionen
Syntax
sp_unbindrule [ @objname = ] 'object_name'
[ , [ @futureonly = ] 'futureonly_flag' ]
Argumente
[ @objname= ] 'object_name'
Der Name der Tabelle und der Spalte oder der Aliasdatentyp, für die bzw. den die Bindung der Regel aufgehoben wird. object_name ist vom Datentyp nvarchar(776) und hat keinen Standardwert. SQL Server versucht zuerst, zweiteilige Bezeichner für Spaltennamen aufzulösen, und versucht dann, zweiteilige Bezeichner für 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.Hinweis object_name kann eckige Klammern [ ] als Begrenzungsbezeichnerzeichen enthalten. Weitere Informationen finden Sie unter Datenbankbezeichner.
[ @futureonly= ] 'futureonly_flag'
Wird nur beim Aufheben der Bindung einer Regel an einen Aliasdatentyp verwendet. futureonly_flag ist vom Datentyp varchar(15). Der Standardwert ist 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 Begrenzungsbezeichnern
Im folgenden Beispiel wird die Verwendung von Begrenzungsbezeichnern 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'
Siehe auch
Verweis
Gespeicherte Systemprozeduren (Transact-SQL)
Gespeicherte Prozeduren für das Datenbankmodul (Transact-SQL)