我正在尝试通过SSMS向表添加计算列 - 我不想详细说明为什么基础列是
当我在表设计器中输入公式
“验证列
使用公式
原始列是
我已经保存了具有新计算列和虚拟值的表,并重新连接到数据库 - 这是为了确保没有发生奇怪的缓存问题,因为有时会发生。错误与持久标志无关 - 如果只有关闭它那么容易。
VARCHAR(10)
而不是DATE
,也不想更改它。当我在表设计器中输入公式
CONVERT(DATE, [charDob])
时,SSMS报告如下错误:“验证列
charDobTyped
的公式时出错。”使用公式
[charDob]
按预期工作,这意味着列已正确绑定。此外,公式CONVERT(DATE, '2001')
也按预期工作 - 因此,在使用该列时存在某些导致错误的问题。原始列是
VARCHAR(10)
,包含NULL值或其他可转换为DATE
的值。查询SELECT CONVERT(DATE,charDob) as dob FROM people
按预期工作。此外,错误消息是关于“无效公式”,而不是数据转换错误,因此我不认为无法转换是导致这个问题的原因。我已经保存了具有新计算列和虚拟值的表,并重新连接到数据库 - 这是为了确保没有发生奇怪的缓存问题,因为有时会发生。错误与持久标志无关 - 如果只有关闭它那么容易。
ALTER TABLE
语句,而不是充满各种错误的UI界面吗?或者也许你需要澄清一下你所说的“尝试使用公式”的意思? - Aaron Bertrand