从数据库到另一个数据库中插入数据(Insert data from db to another db

2019-08-18 01:36发布

我想从我的旧数据库表中新数据库表取值。

旧的数据库结构:

表一: Country

  • CountryId
  • 国家的名字

新的数据库结构

表二: Countries

  • ID
  • 名称

我用下面的INSERT查询一样,

select 'insert into Countries (Id, Name) select ', countryid, countryname from Country

但我的结果一样,

  • insert into Countries(Id,Name) select 1 India
  • insert into Countries(Id,Name) select 2 Any Country

像那样。

但我需要的结果一样,

insert into Countries (Id, Name) values (1, 'India')

要做到这一点,什么是查询? 帮我...

Answer 1:

如果有大量的数据传输和多个表的,我会建议使用SQL Server Management Studio中提供的导入/导出向导。

http://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/

编辑:但是,如果没有大量的数据和两个系统不连接 - 你需要生成脚本来传输数据,您的查询应该是这样的:

SELECT 'INSERT INTO Countries (Id, Name) VALUES (' + CAST(countryid AS VARCHAR(50)) + ', ''' + countryname + ''')' from Country


Answer 2:

使用简单的INSERT语句(数据库名称。[SCHEMA_NAME]。表)

INSERT [NewDB].[your_schema].[Countries](Id,Name)
SELECT CountryId, CountryName
FROM [OldDB].[your_schema].[Country]


Answer 3:

如果这两个数据库是一台服务器上,你可以这样做:

insert into [db1name].[dbo].[Countries] (Id, Name)
select CountryId, CountryName
from [db2name].[dbo].[Countries]
where _your where clause_

希望这可以帮助



Answer 4:

说实话,我真的不明白,你写的查询。 你们是不是从你的查询字符串建立你然后再传给你的数据库?

你可以从一个数据库传递自己的价值观给其他在一个查询:

/*
    maybe you need to switch off identity on your target table
    to get your original id values into the target table like this:
    (without comment ofc ;))
*/
--SET IDENTITY_INSERT TargetDatabase.dbo.Countries ON

INSERT INTO TargetDatabase.dbo.Countries (Id, Name)
    SELECT
            CountryId, CountryName
        FROM SourceDatabase.dbo.Country

--SET IDENTITY_INSERT TargetDatabase.dbo.Countries OFF

或者你可以使用一个临时表和交换机获取你的原始值后的数据库连接。

USE SourceDatabase

DECLARE @TempTable TABLE (CountryId INT PRIMARY KEY, CountryName NVARCHAR(MAX))

INSERT INTO @TempTable (CountryId, CountryName)
    SELECT
            CountryId, CountryName
        FROM Country

USE TargetDatabase

/*
    maybe you need to switch off identity on your target table
    to get your original id values into the target table like this:
    (without comment ofc ;))
*/
--SET IDENTITY_INSERT Countries ON

INSERT INTO Countries (Id, Name)
    SELECT
            CountryId, CountryName
        FROM @TempTable

--SET IDENTITY_INSERT Countries OFF

编辑:作为以前的海报提到,对于这个工作,你需要在同一台服务器上的两个数据库,因为你没有说,我只是认为那是什么情况? :d



文章来源: Insert data from db to another db