自动创建的统计信息未被Sql Server 2008删除

时间:2012-03-30 12:28:09

标签: sql-server statistics

我在Sql Server中遇到了一个错误,在解决它之后,我正在寻找发生这种情况的原因。 情况是我试图改变像这样的表中的列

Alter Table tblEmployee 
Alter Column empDate Date

但是在运行此脚本时,我收到错误 -

统计信息'empDate'依赖于列'empDate'。 Msg 4922,Level 16,State 9,Line 1 ALTER TABLE ALTER COLUMN empDate失败,因为一个或多个对象访问此列。

事实证明,此错误是由于此列上引用了统计信息。我没有明确创建统计信息的脚本,并且错误发生在生产环境中,因此必须自动创建。如果它是自动创建的,那么为什么Sql Server不会自行删除它?丢弃统计数据后,我的错误得到了解决。

我看了看其他地方,却找不到相关的东西。

1 个答案:

答案 0 :(得分:0)

我没有仔细研究几个版本的SQL统计数据,但回过头来,自动生成的统计数据具有相当不同的名称(例如“_WA_Sys_00000005_00000037”)。如果您的统计信息字面上的名称为“empDate”,则几乎可以肯定不是和自动创建的统计信息,而是有人故意创建的。