SQL Server添加列约束以将数据限制为-1到1

Set*_*man 4 sql t-sql sql-server constraints

我想约束SQL Server十进制列只允许-1,0,1作为有效值.

你能告诉我添加这种约束的SQL语法吗?(我想知道如何在CREATE TABLE语句和/或ALTER TABLE ADD CONSTRAINT中执行此操作).

或者这只能在触发器中完成?

gbn*_*gbn 24

CREATE TABLE foo (
    bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)
Run Code Online (Sandbox Code Playgroud)

要么

ALTER TABLE foo WITH CHECK ADD --added WITH CHECK
   CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1)) --not needed "FOR bar"
Run Code Online (Sandbox Code Playgroud)

编辑:想法......

  • 为什么约束小数?你能把它改成smallint或int吗?
  • 那么NULL呢?您可能需要更改我的代码才能完全按照您的意愿执行操作