gpt4 book ai didi

sql - 在Sql Server中,对象的object_id是否会发生变化?

转载 作者:行者123 更新时间:2023-12-02 19:00:13 26 4
gpt4 key购买 nike

我需要知道 Sql Server 2008 的数据库中(还想知道 2005 年和 2000 年有什么区别)是否会因任何原因更改表的 object_id。

例如。更改表是否会通过删除和创建来更改该 id,以及在什么情况下选择以这种方式更改表(如果有的话)而不是任何其他更改表的方式。

我无法在网络上找到任何非常具体的内容,例如白皮书或 msdn 文章。我发现了这段对话:http://sql-server-performance.com/Community/forums/p/5918/167487.aspx

起初,对话基本上是“不”,然后似乎来了一个 180。我也在寻找任何答案的合法引用。我对在真实的 Sql Server 设计花絮前进行实验不感兴趣,以防出现行为发生变化的奇怪情况。例如,它可能会删除并重新创建以更改表,但前提是该表为空;但如果它有数据,它不会改变 id...等等。我可以看到有人如何通过这样做得出一个看似正确但不完整的答案,而不是整个故事。

对于这个问题的冗长、描述性可能不够充分和挑剔的性质,提前表示歉意。

最佳答案

object_id 在对象创建时分配。它唯一会改变的时候是重新创建对象。

SSMS 在幕后做的一些事情实际上涉及删除和重新创建表(在某些情况下,甚至可能不需要)。例如,如果您在表的中间添加一列,则需要删除并重新创建 - 因此需要一个新的 object_id。

无论如何,您都不应该在任何地方保留数据库中的 object_id,只需每次使用 object_id([objectname]) 再次查询即可

关于sql - 在Sql Server中,对象的object_id是否会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com