有没有人知道是否有办法实现与datetime
列相同的影响,默认绑定为getdate()
与计算列?
我尝试将公式设置为getdate()
并持续到Yes
但我收到错误
Computed column 'InsertDateTime' in table 'Tmp_Table' cannot be persisted because the column is non-deterministic.
答案 0 :(得分:6)
忘记“计算列”并将其设为常规非空列,默认为GETDATE()
,或使用INSTEAD OF UPDATE/INSERT
触发器进行设置。
您不能使计算列使用不断返回不同值的函数(基于相同的参数值),它必须每次返回相同的值(基于相同的参数值)。阅读:Deterministic and Nondeterministic Functions
所有功能都是确定性的或不确定的:
- 确定性函数始终会始终返回相同的结果 使用一组特定的输入值调用它们。
- 非确定性功能每次都可能返回不同的结果 使用一组特定的输入值调用它们。
函数是确定性的还是非确定性的称为 函数的确定性。
例如,DATEADD内置函数是确定性的,因为它 始终为任何给定的参数值集返回相同的结果 因为它的三个参数。 GETDATE不是确定性的,因为它是 始终使用相同的参数调用,但返回的值 每次执行时都会更改。