添加列后无法更新表(SQL 2008R2)

时间:2013-10-16 15:29:36

标签: sql sql-server sql-server-2008

我们刚刚在数据库的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大师都看到过这种行为吗?

1 个答案:

答案 0 :(得分:1)

不是糟糕的糟糕,我正遭受来自一个非常糟糕的供应商的遗留代码的困扰......我不得不深入挖掘以找到我的答案。

触发器中引用的“Audit”表是字段无关的,但在此特定表的触发器中,它们使用列序号位置和与SQL 2008不兼容的其他一些复杂字段跟踪。(http://technet.microsoft.com/en-us/library/ms186329(v=sql.105).aspx)其他表的审计表和触发器更新,并且没有这些相同的问题。

现在我必须检查数据库中的50多个触发器,以使它们更新。