如何 select/update 仅来自不同表的相同 GUID

How to select/update only same GUID from different tables

在 SQL 服务器中,我正在尝试更新 table 的特定列,当它的 GUID 和另一个的相同时。

 UPDATE [A].[Sch].[Box]
     SET [FFType_Id] = 5
 WHERE [A].[Sch].[Box].Id = (SELECT id from [B].Sch.Boxes)

我知道无法比较 GUID,这就是我尝试 CAST()CONVERT()

的原因
N''''+CONVERT(nvarchar(max),[B].Sch.Boxes.Id)+  N''''

CAST([B].Sch.Boxes.Id AS VARCHAR(MAX))

另外当我查询

SELECT [A].Sch.Box.Id, [B].Sch.Boxes.Id 
FROM [A].Sch.Box INNER JOIN [B].Sch.Boxes 
                         ON [A].Sch.Box.Id = [B].Sch.Boxes.Id
                         WHERE [A].Sch.Box.Id= [B].Sch.Boxes.Id

它returns所有ID(相同或注释)但是当我查询

SELECT [A].Sch.Box.Id, [B].Sch.Boxes.Id 
FROM [A].Sch.Box INNER JOIN [B].Sch.Boxes 
                         ON [A].Sch.Box.Id = [B].Sch.Boxes.Id
                         WHERE [A].Sch.Box.Id= '0DB2F38E-DE98-43B9-9333-8CD395506858'

它returns只有那个

在SQL服务器中,除部分运营商外的所有数据都可以进行比较。 UNIQUEIDENTIFIER可以比较...

您的问题可以通过以下方式解决:

UPDATE T1
SET    [FFType_Id] = 5
FROM   [A].[Sch].[Box] AS T1
       JOIN [B].Sch.Boxes AS T2 
          ON T1.Id = T2.Id;

在两个 GUID 之间加入。