我的SQL Server上有一个非常奇怪的问题。
每晚我最近创建的2个表都会被自动截断...
我很确定,它是截断的,因为我的ON DELETE触发器不会记录任何删除事务。 另外,我发现,使用一些记录程序,这发生在晚上01:50和01:52之间。所以我检查了服务器上的预定作业,但没有找到任何内容。 我只在我们的生产服务器上有这个问题。这就是为什么它非常关键。在克隆的测试服务器上一切正常。
我检查了事务日志条目(fn_dblog),但没有找到任何截断日志。
我将不胜感激任何有助于我找出截断表格的流程/工作/用户的帮助或提示。
由于
答案 0 :(得分:1)
从个人经验来看,作为第一步,我将确定是否由于DROP语句或TRUNCATE语句而发生这种情况。 要使用SSMS提供可能的答案,请在对象资源管理器中右键单击数据库名称,将鼠标悬停在Reports>>上。标准报告,然后单击架构更改历史记录。
这将打开一个包含对象名称和类型列的简单报告。找到表的名称,单击+符号展开,它将为您提供该表的对象级别发生的事件的历史记录。 如果你在那里找到DROP语句,那么至少你知道你在寻找什么,同样如果没有DROP语句,你可能正在寻找一个TRUNCATE。
答案 1 :(得分:0)
查看以下查询,
声明@var为varchar(max)='tblname' EXEC sp_depends @objname = @ var;
它将返回正在使用您的表的存储过程名称的数量,如果您错误地写了,请尝试搜索任何截断查询。