In SQL Server 2016. Ich erstellte eine Spalte mit benutzerdefinierten Datentyp, die Regel binden. T-SQL-Skript wie:Wie benutzerdefinierte Fehlermeldung bei Regelprüfung aufgetreten? T-SQL
CREATE RULE [dbo].[R_typeYesNo]
AS @column IN ('Y', 'N')
GO
CREATE TYPE [dbo].[typeYesNo]
FROM VARCHAR (1) NULL
GO
EXECUTE sp_bindrule [R_typeYesNo], [typeYesNo]
GO
CREATE TABLE dbo.MyRuleTable (
ID int identity,
ACTIVEYN [dbo].[typeYesNo] NULL,
CONSTRAINT [PK_MyRuleTable] PRIMARY KEY CLUSTERED ([ID] ASC)
)
GO
INSERT INTO dbo.MyRuleTable(ACTIVEYN)
VALUES('A')
GO
-- Exception here
DROP TABLE dbo.MyRuleTable;
DROP TYPE [dbo].[typeYesNo];
DROP RULE [dbo].[R_typeYesNo];
GO
Wenn ein falscher Wert eingefügt, wird die Regelprüfung Ausnahmemeldung zurück:
Msg 513, Ebene 16, Status 0, Zeile 20 A-Säulen-Einsatz oder Update Konflikte mit einer Regel, die von einer vorherigen CREATE RULE-Anweisung auferlegt wurde. Die Anweisung wurde beendet. Der Konflikt ist in der Datenbank 'DB1', Tabelle 'dbo.MyRuleTable', Spalte 'ACTIVEYN' aufgetreten.
Ist möglich, kann die Nachricht anpassen?