【发布时间】:2017-06-16 09:29:34
【问题描述】:
在 SQL Server 2016 中。 我创建了一个具有绑定规则的用户定义数据类型的列。 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
当插入错误值时,规则检查会返回异常信息:
消息 513,级别 16,状态 0,行 20 A 列插入或更新 与先前的 CREATE RULE 语句强加的规则冲突。这 声明被终止。数据库“DB1”中发生冲突, 表“dbo.MyRuleTable”,列“ACTIVEYN”。
可以,可以自定义留言吗?
【问题讨论】:
标签: sql-server tsql