2015-11-05 37 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 
相关问题