我们使用 Azure Synapse Analytics。当尝试删除列时
ALTER table my_table drop COLUMN my_column
它说: 统计数据“Stat_616f789ac8c54c449f7910cb3bcb3810”依赖于列“my_column”。
但我没能找到上述统计数据来放弃它们:
select * from sys.stats where name like '%Stat%'
如何确定并消除这个烦人的拦截器?
您可以使用 this 查询的简单修改来显示自动创建的表统计信息。进行以下更改:
where st.user_created = 0
and sm.name = 'MY_SCHEMA_NAME'
and tb.name = 'MY_TABLE_NAME'
然后使用 DROP STATISTICS 命令删除有问题的统计信息。
或者,关闭自动统计以避免创建您无法识别的统计数据。
文档这里。
使用查询添加到上面的 Ron Dunn 答案中 - 这个查询对我有用,因为它显示了需要在我尝试删除的列旁边删除的系统统计名称,因此它成为查找正确的简单情况要使用的统计名称,删除该统计信息,然后我可以删除该列。 感谢您的帖子罗恩!