Sql 创建一个只接受两个值的变量。值为-1和1

Sql 创建一个只接受两个值的变量。值为-1和1,sql,sql-server,Sql,Sql Server,我遇到了一种情况,在一个变量中,应该只接受两个值;值为-1和1。我创建了一个规则并将其绑定到我创建的新类型。但它仍在接受其他价值观。下面是代码 EXEC sp_addtype Dimension_Type, 'TINYINT', 'NOT NULL' CREATE RULE rule_Dimension_Type AS @Dimension_Type IN (-1,1) EXEC sp_bindrule 'rule_Dimension_Type', 'Dimension_Type' CREA

我遇到了一种情况,在一个变量中,应该只接受两个值;值为-1和1。我创建了一个规则并将其绑定到我创建的新类型。但它仍在接受其他价值观。下面是代码

EXEC sp_addtype Dimension_Type, 'TINYINT', 'NOT NULL'

CREATE RULE rule_Dimension_Type AS @Dimension_Type IN (-1,1)
EXEC sp_bindrule 'rule_Dimension_Type', 'Dimension_Type'

CREATE DEFAULT def_Dimension_Type AS 1
EXEC sp_bindefault 'def_Dimension_Type', 'Dimension_Type'

DECLARE @X AS Dimension_Type
SET @X = 22

最好将其设置为位数据类型,并将其大小写为0,然后设置为-1。而不是制定规则。你为什么要用这些天?避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。当然,同一页面会确切地告诉您它不起作用的原因:只有在尝试向别名数据类型的数据库列插入值或更新时,才会激活绑定到别名数据类型的规则。因为规则不测试变量,所以不要为别名数据类型变量赋值,因为绑定到相同数据类型列的规则会拒绝该变量。我的重点是。谢谢您的回复。我有一个以-1或1作为输入的存储过程。所以我想在接受参数而不是存储过程体时应用规则。现在我在存储过程体中处理这个验证。