2015-11-05 35 views
0

我試圖將所有內容從一個表移動到另一個表。如果所有列的數據類型相同,我知道該怎麼做,但是一列是不同的。在新表上它的varcahar(24)和舊桌子上的bigint。 這是我到目前爲止,我使用第一個選擇語句來設置ID,其餘的將它添加到新表。然而,這總是返回最後一個ID,我需要它與第二條語句同步在轉換其中一個行時將所有內容從一個表移動到另一個表

任何關於如何做到這一點的建議將會很棒。我試圖谷歌它約一個小時,但無法拿出任何東西。我正在使用SQL Server 2012

use DatabaseA 
GO 

DECLARE @id bigint; 


SELECT @id= columnName FROM differentDB.tableB 

INSERT INTO tableA 
      (buyer_id, restOfTheColumns) 

Select CAST(@id AS varchar(24)), restOfTheColumns 
FROM differentDB.tableB 

GO 

回答

1

變量不能像那樣工作。 T-SQL變量保存數據值,而不是對象名稱。此外,這是一個標量變量。它只保存一個值。

也就是說,你根本不需要變量。你可以這樣做:

INSERT INTO tableA (buyer_id, restOfTheColumns) 
SELECT CAST(columnName AS varchar(24)), restOfTheColumns 
FROM differentDB.tableB 
相關問題