Sql 上下文不允许
这个错误说 在此上下文中不允许使用名称“deliveryDate”。有效表达式是常量、常量表达式和(在某些上下文中)变量。不允许使用列名 代码是Sql 上下文不允许,sql,sql-server,ssis,Sql,Sql Server,Ssis,这个错误说 在此上下文中不允许使用名称“deliveryDate”。有效表达式是常量、常量表达式和(在某些上下文中)变量。不允许使用列名 代码是 snbYesorNo char(3) CHECK ((requestor = snb AND snbYesorNo = 'NO') OR (requestor <> snb AND snbYesorNo = 'YES')), delMonth char(3) DEFAULT DATENAM
snbYesorNo char(3) CHECK ((requestor = snb AND snbYesorNo = 'NO')
OR (requestor <> snb AND snbYesorNo = 'YES')),
delMonth char(3) DEFAULT DATENAME(month, deliveryDate).
snbYesorNo字符(3)检查((请求者=snb,snbYesorNo='NO'))
或(请求者snb和snbYesorNo=‘是’),
delMonth字符(3)默认日期名称(月份、交货日期)。
最后一件事,我还可以使用什么命令来为ddl生成if语句?我使用了
Check
,但它似乎不起作用。还有其他建议吗?您希望根据其他列使用默认值。使用触发器或计算列默认值不能包含对其他列的引用?但是为什么要将delMonth存储为单独的列,您已经在deliveryDate中获得了该信息!如果您决定计算列:delMonth作为DATENAME(month,deliveryDate)
@lad2025我按您所说的做了,我想这是正确的,但它提示列“snbYesorNo”的列检查约束引用另一列,表“POGR”。Msg 1750,第16级,状态0,第1行您不能在检查约束不同的表中引用。你需要UDF。