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