[英]Copy Table from a Server and Insert into another Server: What is wrong with this T-SQL query?
[英]Using T-Sql, how can I insert from one table on a remote server into another table on my local server?
鉴于远程服务器'Production'(目前可通过IP访问)和本地数据库'Development',如何使用T-SQL从'Production'运行INSERT
到'Development'?
我正在使用MS SQL 2005,两个数据库之间的表结构有很大不同,因此需要我手动编写一些迁移脚本。
更新:
T-SQL真的不是我的包。 我尝试了以下(不知道我在做什么):
EXEC sp_addlinkedserver
@server = N'20.0.0.1\SQLEXPRESS',
@srvproduct=N'SQL Server' ;
GO
EXEC sp_addlinkedsrvlogin '20.0.0.1\SQLEXPRESS', 'false',
'Domain\Administrator', 'sa', 'saPassword'
SELECT * FROM [20.0.0.1\SQLEXPRESS].[DatabaseName].[dbo].[Table]
我收到错误:
用户''登录失败。 用户未与受信任的SQL Server连接关联。
创建链接服务器 ,然后使用4部分表示法
insert table
select <column names>
from LinkedserverName.DatabaseName.SchemaName.TableName
你也可以使用OPENROWSET
例
insert table
SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
'SELECT GroupName, Name, DepartmentID
FROM AdventureWorks2008R2.HumanResources.Department
ORDER BY GroupName, Name') AS a;
试试这个来创建登录
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'20.0.0.1\SQLEXPRESS',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'sa',
@rmtpassword='saPassword'
您可以将PROD服务器定义为DEV框的链接服务器,然后访问它。 但是我认为从PROD Box获取备份并将其还原到DEV或使用SSIS进行Schema Import会更容易。
查看RedGate工具,尤其是 SQL数据比较。 如果这不是一个选项,您应该查看OPENDATASOURCE或OPENROWSET来访问远程数据库。
那么你可以使用链接服务器,然后使用对象的4部分名称(请参阅BOL了解如何设置链接服务器)或者您可以使用SSIS设置数据迁移并连接到远程服务器或者您可以使用OPENROWSET
我可能会使用SSIS,但我已经熟悉它了。
使用SSMS。 右键单击目标数据库,然后选择“任务”,“导入数据”。 您将能够预览数据并直观地进行转换。 将包保存在SSIS中或立即运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.