从另一个数据库和同一个数据库(SQL Server)

时间:2016-07-27 19:29:25

标签: sql sql-server

也许你们可以帮我一把;我有两个数据库,我需要将第二个数据库中的数据插入到第一个数据库中,但我还需要来自第一个数据库的Id。两个数据库都在同一台服务器上。

第一个数据库是BiologiaBd,其中包含表格personal,其中包含Id列和名为nombre的名称。

第二个数据库名为Herpetologia,包含一个名为CuadernoCampo的表,该表有一个名为IdCC的ID和一个名为NomeColeCC的名称。这与personal

中的表BiologiaBd的名称相同

所以,我有类似的东西

USE BiologiaBd
GO

INSERT INTO CuadernoCampo (codigoCuadernoCampo, idPersonal) 
    SELECT 
        IdCC, idPersonal 
    FROM 
        Herpetologia.dbo.CuadernosCampo, <--BiologiaBd
    WHERE
        idPersonal = (SELECT idPersonal 
                      FROM BiologiaBd 
                      WHERE nombre = (SELECT NomeColeCC 
                                      FROM Herpetologia.dbo.CuadernosCampo))

它不会起作用,因为我无法在&#34;中添加第一个数据库,有些想法?

非常感谢你们

3 个答案:

答案 0 :(得分:2)

您可能需要加入,如:

INSERT INTO CuadernoCampo (codigoCuadernoCampo,idPersonal) 
  SELECT db1.IdCC, db2.idPersonal FROM CuadernosCampo db1
    JOIN BiologiaBd db2 ON db1.nombre=db2.NomeColeCC

假设CuadernoCampo中的每条记录都有BiologiaBd记录。

答案 1 :(得分:1)

引用表时

You should just be able to specify the database name

insert into CuadernoCampo (codigoCuadernoCampo,idPersonal) 
SELECT IdCC, idPersonal 
FROM BiologiaBd.dbo.CuadernosCampo, <--BiologiaBd
where idPersonal = (select idPersonal from BiologiaBd where nombre = (Select   
NomeColeCC from Herpetologia.dbo.CuadernosCampo))

这不起作用吗?

答案 2 :(得分:1)

如果有人想知道答案是这个

USE BiologiaBd
GO
INSERT INTO CuadernoCampo (codigoCuadernoCampo,idPersonal) 
SELECT db1.IdCC, db2.idPersonal FROM Herpetologia.dbo.CuadernosCampo db1
JOIN BiologiaBd.dbo.Personal db2 ON db1.NomeColeCC=db2.nombre
再来一次!