您好,我有一个场景,其中我有多个SQL数据库,以及中央数据库上的一个工具,该工具连接到每个数据库上的每个用户表并构建数据集。
当一个数据库中的用户迁移到另一个数据库时,就会出现问题。当该工具运行时,它会遇到问题,因为user_id是 guid pk,并且由于用户已跨数据库迁移,因此数据集最终将在最终数据集中具有重复的私钥。
我的问题,如果我想为某个用户重新生成用户 ID guid, 当然,我还必须更新所有连接外键。是 MS SQL中有一个命令来重新生成GUID,并且也这样做 所有连接关系?
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;