我遇到了以下问题:我有2个数据库,比方说DB1
和DB2
。
我正在使用SQL Server 2008R2
在DB1
我有:
tblPerson
ID Value
1 Jake
2 Sandra
在DB2
我有:
ID Value
1 Jef
2 Kendra
我想导出或生成脚本或使用工具成为下一个。
在DB1
:
ID Value
1 Jake
2 Sandra
3 Jef
4 Kendra
但我总是得到这个结果:
ID Value
1 Jake
2 Sandra
1 Jef
2 Kendra
我试过了:
这些工作都没有这方面的工具,或者它是不可能的,我是否必须手工完成所有工作?
答案 0 :(得分:1)
-E
选项如果密钥为identity,则会自动生成密钥 。
或者,只需执行此操作:
insert into DB1..tblPerson
select Value from DB2..tblPerson
答案 1 :(得分:1)
遗憾的是,你不会说你正在使用哪个版本的SQL Server - 如果你使用的是SQL Server 2005或更新,你可以使用这样的东西:
;WITH CombinedData AS
(
SELECT DBNr = 1, ID, Value
FROM DB1.dbo.tblPerson
UNION ALL
SELECT DBNr = 2, ID, Value
FROM DB2.dbo.tblPerson
)
SELECT
ROW_NUMBER() OVER (ORDER BY DBNr, ID) AS 'NewID',
Value
FROM
CombinedData
这会给你一个像这样的输出:
NewID PersonName
1 Jake
2 Sandra
3 Jef
4 Kendra
答案 2 :(得分:1)
将新表的ID设置为自动标识,您应该能够执行以下操作:
insert into db1.NewTable ( Value ) select Value from db1.Table
insert into db1.NewTable ( Value ) select Value from db2.Table