SQL Server:恢复时避免GUID重新生成?

时间:2009-06-18 15:49:09

标签: sql-server

我有一个表,其中主键是GUID,默认值为NewID。如果我备份时PK列的值为XYZ,我会在恢复的表中看到XYZ。事实上我得到了PQR(相当于GUID)。看起来GUID在恢复时会重新生成。这实际上是否正在发生(似乎有点疯狂),如果是这样,怎么可以避免呢?

2 个答案:

答案 0 :(得分:2)

没有人在恢复时更改您的数据(我假设您将备份/恢复视为真正的BACKUP / RESTORE语句,而不是某些自定义数据复制解决方案)。如果guid已经改变,你要么已经恢复了不同的数据,要么你自己更改了数据,而你却不知道何时(触发?应用程序?)。

答案 1 :(得分:0)

仅仅恢复不会发生这种情况

我还想指出,如果你在uniqueidentifier列上有一个PK来使用NEWSEQUENTIALID()而不是NEWID(),因为NEWID()会在聚簇索引上引起可怕的分页(主键是由默认值)

我有一些代码在这里显示差异:Some Simple Code To Show The Difference Between Newid And Newsequentialid