3 sql sql-server ssms calculated-columns
我正在尝试通过SSMS将计算列添加到表中-我宁愿不要深入了解为什么基列是a VARCHAR(10)和not a DATE和no,我对更改它不感兴趣。
当我CONVERT(DATE, [charDob])在表格设计器中输入公式时,SSMS报告:
验证column的公式时出错
charDobTyped。
[charDob]按预期使用公式“工程”,这意味着该列已正确绑定。公式CONVERT(DATE, '2001')“ 公式”也可以按预期工作-因此使用导致错误的列会引起某些问题。
原始列为a VARCHAR(10),包含NULL值或可转换为的值DATE。该查询SELECT CONVERT(DATE,charDob) as dob FROM people按预期方式工作。另外,错误消息是关于“无效公式”的,而不是关于数据转换错误的,所以我不认为不可转换会导致这种情况。
我已经用新的计算列和一个虚拟值保存了该表,并重新连接到数据库-这是为了确保不会发生有时会发生的奇怪的缓存问题。该错误的持久性与持久性标志无关-如果只是很容易将其关闭。
Management Studio不是执行大多数DDL的最佳方法。请打开一个新的查询窗口并使用:
ALTER TABLE dbo.whatever ADD newcolumn AS (CONVERT(DATE, CharDob));
Run Code Online (Sandbox Code Playgroud)
这是具体的错误:
在这种情况下,“下一版本”无疑是SQL Server 2012,因此,如果您使用的是2008或2008 R2 SSMS(为什么?),则该修复程序将不适用于您。
| 归档时间: |
|
| 查看次数: |
3873 次 |
| 最近记录: |