15107: Regel kann nicht an eine berechnete Spalte oder an eine Spalte vom Datentyp gebunden werden
Fehlermeldung:
Meldung 15107, Ebene 16, Status 1, Prozedur sp_bindrule, Zeile 143
Eine Regel kann nicht an eine berechnete Spalte oder an eine Spalte vom Datentyp 'text', 'ntext', 'image', 'timestamp', 'varchar(max)', 'nvarchar(max)', 'varbinary(max)', 'xml' oder 'sqlclr' gebunden werden.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht per sp_bindrule eine Regel an eine Spalte von einem der in der Meldung erwähnten Datentypen zu binden.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 15 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Eine Regel kann nicht an eine Spalte von einem BLOB Datentypen gebunden werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE tempDB
IF OBJECT_ID('t') > 0
DROP TABLE t
CREATE TABLE t
(
id int NOT NULL PRIMARY KEY,
c1 text
)
INSERT INTO t(id, c1) VALUES (1, 'This is a long text')
GO
DROP RULE myRule
GO
CREATE RULE myRule
AS @value LIKE '__-%[0-9]'
GO
EXEC sp_bindrule 'myRule', 't.c1
Anmerkungen:
CREATE RULE und sp_bindrule sind veraltete Konstrukte und werden in einer zukünftigen SQL Server Version nicht mehr vorhanden sein. Stattdessen sollte man auf CHECK Einschränkungen zurückgreifen.