2

我们刚刚在数据库中的 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 专家都见过这种行为吗?

4

1 回答 1

1

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

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

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

于 2013-10-16T17:24:45.920 回答