如何 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 之间加入。
在 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 之间加入。