我们刚刚在数据库的4个表中添加了两列UserHash NVARCHAR(255)
和UserSalt NVARCHAR(8)
。对于其中一个表,当我尝试更新该表上的任何内容时,我收到有关UserHash
列的以下错误。
错误讯息:
消息207,级别16,状态1,行1无效的列名称“UserHash”。
示例Update
声明:
UPDATE dbo.Users
SET UserSalt = 'asdf', UserHash = 'SomeString'
WHERE ID = 21237
(1 row(s) affected)
(1 row(s) affected)
这些表格是在SSMS中编辑的,其中3个没有问题。
当我选择时,列就在那里。智能感知它。
删除列可恢复更新功能。
问题表仅在UserHash
列上显示问题,而不在UserSalt
列上显示。
我尝试删除并重新添加。同样的问题。 新列未编入索引。 我已经重建了表格中的所有索引。
我所做的每一次搜索都会出现..“哎呀......我的坏”是关于查询和观点的答案。你们中的任何一位SQL大师都看到过这种行为吗?
答案 0 :(得分:1)
不是糟糕的糟糕,我正遭受来自一个非常糟糕的供应商的遗留代码的困扰......我不得不深入挖掘以找到我的答案。
触发器中引用的“Audit”表是字段无关的,但在此特定表的触发器中,它们使用列序号位置和与SQL 2008不兼容的其他一些复杂字段跟踪。(http://technet.microsoft.com/en-us/library/ms186329(v=sql.105).aspx)其他表的审计表和触发器更新,并且没有这些相同的问题。
现在我必须检查数据库中的50多个触发器,以使它们更新。