我想从我的旧数据库表中新数据库表取值。
旧的数据库结构:
表一: Country
新的数据库结构
表二: Countries
我用下面的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')
要做到这一点,什么是查询? 帮我...
如果有大量的数据传输和多个表的,我会建议使用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
使用简单的INSERT语句(数据库名称。[SCHEMA_NAME]。表)
INSERT [NewDB].[your_schema].[Countries](Id,Name)
SELECT CountryId, CountryName
FROM [OldDB].[your_schema].[Country]
如果这两个数据库是一台服务器上,你可以这样做:
insert into [db1name].[dbo].[Countries] (Id, Name)
select CountryId, CountryName
from [db2name].[dbo].[Countries]
where _your where clause_
希望这可以帮助
说实话,我真的不明白,你写的查询。 你们是不是从你的查询字符串建立你然后再传给你的数据库?
你可以从一个数据库传递自己的价值观给其他在一个查询:
/*
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