当前位置: 首页 > 面试题库 >

使用T-Sql,如何从远程服务器上的一个表插入本地服务器上的另一个表?

洪涵亮
2023-03-14
问题内容

给定远程服务器“生产”(当前可通过IP访问)和本地数据库“开发”,如何INSERT使用T-SQL从“生产”运行到“开发”?

我使用的是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'


 类似资料: