我有一个简单的SQL UPDATE
查询,它抱怨“无效的对象名称”AuditCrudFields
根本不存在于我的ASP.NET项目中。 (我已经尝试在我的项目中使用AuditCrudFields
进行grepping但找不到匹配项。)
UPDATE
声明是:
UPDATE [dbo].[PartModel]
SET partOfficial = 39, updateTS = CONVERT(DATETIME, ‘2017-12-08’, 111)
WHERE partId = 298
错误返回:
令人费解的是,这些都是PartModel
内存在的所有属性。所以我想知道AuditCrudFields
来自哪里?
public class PartModel : EntityInformation
{
[Key]
public Int64 partId { get; set; }
public int partTypeId { get; set; }
[ForeignKey("partTypeId")]
public virtual PartTypeModel PartType { get; set; }
public int locationId { get; set; }
[ForeignKey("locationId")]
public virtual LocationModel Location { get; set; }
public int partOfficial { get; set; }
public int partUnofficial { get; set; }
public int partThreshold { get; set; }
public string partImg { get; set; }
public int partStatus { get; set; }
}
答案 0 :(得分:3)
您可以运行此查询来查找尝试使用表AuditCrudFields
的SQL对象代码:
select *
from sys.objects
where object_definition(object_id) like '%AuditCrudFields%'
如果不在触发器定义中,我会感到非常惊讶。
答案 1 :(得分:2)
你所拥有的是一个名为AuditCrudFields
的已删除或重命名的对象(我将其称为死对象)
这可能在Trigger
定义内(或者可能隐藏在存储过程,函数或索引定义中......)
找到死对象的最有效方法是将整个数据库编写成文本(放入一个大的SQL脚本),然后搜索文本......
在找到文本的地方,会指向它的使用位置(也许是一个触发器),然后你可以修复或删除触发器,希望它固定。
在互联网或SO上编写SQL SERVER数据库脚本有很多帮助,但here是另一个链接