SQL Server:存储过程或函数

Ole*_* Sh 1 sql-server stored-procedures function

我有一个包含2列(A as boolB as text)的表,这些列可以是:

  1. 两者都是空的
  2. 如果A为False,则B应为null
  3. 如果A为True,那么B应该不为空

有规则.我想创建一个存储过程或函数来在行添加或更新(通过触发器)时检查这些规则.什么是更好的,存储过程或功能?如果功能,哪种类型?一般来说,哪种变体是最好的(返回布尔值或其他方式等)?

chr*_*isb 11

我认为你是在追求CHECK约束.

例:

ALTER TABLE Xxx
  ADD CONSTRAINT chk_Xxx 
  CHECK ( (A IS NULL AND B IS NULL) 
       OR (A = 0 AND B IS NULL) 
       OR (A = 1 AND B IS NOT NULL)
        ) ;
Run Code Online (Sandbox Code Playgroud)