Azure Synapse:无法删除列,因为它具有相关统计信息

问题描述 投票:0回答:2

我们使用 Azure Synapse Analytics。当尝试删除列时

ALTER table my_table drop COLUMN my_column

它说: 统计数据“Stat_616f789ac8c54c449f7910cb3bcb3810”依赖于列“my_column”。

但我没能找到上述统计数据来放弃它们:

select * from sys.stats where name like '%Stat%'

如何确定并消除这个烦人的拦截器?

statistics azure-synapse
2个回答
2
投票

您可以使用 this 查询的简单修改来显示自动创建的表统计信息。进行以下更改:

where st.user_created = 0
      and sm.name = 'MY_SCHEMA_NAME'
      and tb.name = 'MY_TABLE_NAME' 

然后使用 DROP STATISTICS 命令删除有问题的统计信息。

或者,关闭自动统计以避免创建您无法识别的统计数据。

文档这里


0
投票

使用查询添加到上面的 Ron Dunn 答案中 - 这个查询对我有用,因为它显示了需要在我尝试删除的列旁边删除的系统统计名称,因此它成为查找正确的简单情况要使用的统计名称,删除该统计信息,然后我可以删除该列。 感谢您的帖子罗恩!

© www.soinside.com 2019 - 2024. All rights reserved.