SQL重生Guid PK

时间:2014-12-08 22:01:02

标签: sql-server guid

您好我有一个场景,我有多个SQL数据库,以及一个中央数据库上的工具,它连接到每个数据库上的每个用户表并构建数据集。

当将来自一个数据库的用户迁移到另一个数据库时,会出现问题。当工具运行时遇到问题,因为user_id是guid pk,并且由于用户已跨数据库迁移,因此数据集最终将在最终数据集中具有重复的私钥。

  

我的问题,如果我想为某些用户重新生成用户ID guid,   我当然还必须更新所有连接的外键。是   MS SQL中有一个命令可以重新生成GUID,也可以执行此操作   所有的关系?

1 个答案:

答案 0 :(得分:0)

ON UPDATE CASCADE是您想要的,但您需要提前在外键关系中定义它。

CREATE TABLE User (UserID UNIQUEIDENTIFIER, UserName varchar(30), ... )

CREATE TABLE UserData (DataID UNIQUEIDENTIFIER, UserID UNIQUEIDENTIIFER, ...)

ALTER TABLE UserData
    ADD CONSTRAINT FK_UserData_UserID (UserID) REFERENCES User(UserID)
        ON UPDATE CASCADE;