作者:勇_哥6868 | 来源:互联网 | 2022-12-06 13:48
注意:这不是关于数据库设计,也不是关于GUID的一般用法.这是关于在Microsoft SQL服务器上确定性地为测试数据创建这样的GUID.
我们正在将数据库从整数标识符迁移到uniqueidentifier数据类型.
出于测试目的,我们希望将测试数据集迁移到已知的GUID值,确定性地基于我们以前的整数值
UPDATE Unit
SET UnitGuid = NEWID(UnitId)
显然这不会马上起作用.如何使用UnitId创建确定性GUID?
1> Lukasz Szozd..:
您可以创建keymap表:
CREATE TABLE tab_map(id_old INT PRIMARY KEY, guid UNIQUEIDENTIFIER);
INSERT INTO tab_map(id_old, guid)
SELECT id, NEWID()
FROM src_table;
DBFiddle演示
之后,您可以使用简单查询或使用函数包装:
SELECT guid
FROM tab_map
WHERE id_old = ?