使用 SQL 将值插入到 SQL Server 中的全局 ID 或 GUID 列中

全局 ID 和 GUID 数据类型可存储注册表样式的由大括号括起来的 36 个字符所组成的字符串。这些字符串用于唯一识别单个地理数据库中和跨多个地理数据库的要素或表行。全局 ID 用于保持单向和双向地理数据库复本中的记录以及离线地图中使用的非版本化数据的唯一性。GUID 可以添加到任何表中。

如果要编辑的表参与复制或离线制图或者包含 GUID,在使用 SQL 将新记录插入到表中时必须将唯一值插入到全局 ID 或 GUID 列中。要执行此操作,请使用 newid() 函数。

编辑不可用于存档的非版本化表时,使用该函数将 ID 直接插入表中。编辑可用于存档的非版本化表时,使用该函数将 ID 插入表的存档视图。编辑版本化表时,使用该函数将值插入表的版本化视图。

步骤:
  1. 以具有编辑表权限的用户身份登录到 SQL Server Management Studio。

    如果通过版本化或存档视图编辑,用户还必须有编辑视图的权限。

  2. 打开新的查询窗口,然后连接到包含待编辑表或视图的数据库。
  3. 要将记录插入到表中时,请使用 newid() 函数来填充全局 ID 或 GUID 列。
    INSERT INTO jason.assets (asset_id, globalid) 
     VALUES (57, newid())
    

    请注意,可使用 Next_GlobalID 存储过程获取下一个 ID 值。但是,不能在 INSERT 语句中嵌套存储过程;因此,必须调用该存储过程才能获取下一个可用值,然后获取生成的值并将其包括在插入语句中。如果要在插入前查看该值,这非常有用。

相关主题

5/25/2014