2012-05-20 52 views
0

我在不同表中有兩個自定義類型值:DB1.TBL1.Val和DB2.TBL2.Val。它可以交換這些值?這兩個值是相同類型的,這種類型是datBlob。TSQL:交換不同表中相同類型的兩個值

再次:我有數據庫DB1與表TBL1,它擁有許多記錄,並有一些字段,包括Val。比方說,我確定了條件,以確保這兩個返回的行將是正確的。關於其他數據庫DB2也是如此。我想交換這兩個值。

換句話說,我想是這樣

UPDATE DB1.TBL1 SET瓦爾=(SELECT瓦爾FROM DB2.Tbl2.Val WHERE MyGUID = 'WOW'),其中MyGUID = '哇'

+0

您必須以某種方式識別行,其中2個值是。或者你想「交換」這兩列中的所有值? –

+0

那麼?我可以確定例如:SELECT DB1.TBL1.Val WHERE OtherUniqueval ='{一些GUID}' – seeker

回答

0

沒有值的魔術交換。你必須編寫代碼來完成這項工作。以下代碼顯示如何。你必須適應數據類型,表名等,以及如何找到需要更新的行。

-- Value from DB1 
declare @B1 as int 

-- Value from DB2 
declare @B2 as int 

-- Get value from DB1 
select @B1 = Val 
from DB1.dbo.TBL1.Val 
where ID = 1 

-- Get value from DB2 
select @B2 = Val 
from DB2.dbo.TBL2.Val 
where ID = 1 

-- Update value in DB1 
update DB1.dbo.TBL1 
set Val = @B2 
where ID = 1 

-- Update value in DB2 
update DB2.dbo.TBL2 
set Val = @B1 
where ID = 1 
+0

好吧,我應該聲明,如果我的領域的類型是datBlob,而不是int? – seeker

+0

'datBlob'的定義是什麼? –

+0

我不能保證,但我懷疑這是二進制BLOB。但DECLARE @val二進制不起作用。 – seeker

相關問題