2010-08-14 63 views
1

所以我想我已经知道这个问题的答案...AdventureWorks DB上的问题......很多表中的rowguid有什么意义?

在mssql服务器2008上运行AdventureWorks2008(最新版本)我在想很多表中的rowguid列是为了确保有一个主键。由于列似乎是一个限制,我可能是错误的。

纠正我,如果我错了,也请纠正我与我可以学习的答案。我只是在SQL管理工作室中对此进行了调查......是否有任何疑问会支持我的错误?我不是DBA,所以我迷路了:)

+0

dup http://stackoverflow.com/questions/3482919/question-on-adventureworks-db-what-is-the-point-of-rowguid-in-a-lot-of-the-tab – danihp 2012-01-03 23:07:42

回答

2

通常,rowguid列用于复制,如果您开始使用复制,则会创建rowguid列。从书上线

合并复制要求每个 发布表具有ROWGUID列。 如果 中的ROWGUID列不存在,则在快照代理 之前的表创建初始快照文件 之前,代理必须首先添加并填充 ROWGUID列。要在生成 并在合并 复制期间应用快照时获得 性能优势,请在复制期间在合并 期间发布的每个表上创建ROWGUID列 。创建列时, 指定:

列标题为ROWGUID。

数据类型为UNIQUEIDENTIFIER。

默认为NEWID()。

ROWGUIDCOL属性。

列上的索引。经常使用ROWGUID 列来关联 以在跟踪 期间合并跟踪数据以及发布者和订阅者在 进行的更改的同步。

+0

OH ...我应该知道...我觉得自己像许多MCSE续约一样愚蠢。 HRM! – 2010-08-14 10:49:32