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

使用T-Sql,如何将远程服务器上的一个表插入本地服务器上的另一个表?,sql,sql-server-2005,tsql,Sql,Sql Server 2005,Tsql,考虑到远程服务器“生产”(当前可通过IP访问)和本地数据库“开发”,我如何使用T-SQL从“生产”向“开发”中运行INSERT 我使用的是MS SQL 2005,两个数据库之间的表结构有很大不同,因此需要手动编写一些迁移脚本 更新: T-SQL真的不是我的拿手好戏。我尝试了以下方法(不知道我在做什么): 我得到了一个错误: 用户“”的登录失败。用户是 不与受信任的SQL关联 服务器连接 创建一个符号,然后使用4部分符号 insert table select <column names&g

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

我使用的是MS SQL 2005,两个数据库之间的表结构有很大不同,因此需要手动编写一些迁移脚本

更新:

T-SQL真的不是我的拿手好戏。我尝试了以下方法(不知道我在做什么):

我得到了一个错误:

用户“”的登录失败。用户是 不与受信任的SQL关联 服务器连接

创建一个符号,然后使用4部分符号

insert table
select <column names>
from LinkedserverName.DatabaseName.SchemaName.TableName
尝试此操作以创建登录名

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'20.0.0.1\SQLEXPRESS',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'sa',
@rmtpassword='saPassword'

您可以将PROD服务器定义为链接到DEV box的服务器,然后访问它。
不过,我认为从PROD Box获取备份并将其还原到DEV或使用SSIS导入架构会更容易。

查看工具,尤其是SQL数据比较。如果这不是一个选项,您应该查看或访问远程数据库。

您可以使用链接服务器,然后使用对象的4个部分名称(有关如何设置链接服务器,请参阅BOL) 或者,您可以使用SSI设置数据迁移并连接到远程服务器 或者您可以使用OPENROWSET


我可能会使用SSI,但我已经很熟悉了。

使用SSM。右键单击目标数据库并选择“任务”、“导入数据”。您将能够预览数据并进行可视化转换。将软件包保存在SSIS中或立即运行。

+1以便于使用和示例。但是,如果需要,请确保不要忘记括号。ie,[LinkedserverName].[DatabaseName].[SchemaName].[TableName]如果没有至少前两组括号,我的脚本将无法运行。我正在尝试使用链接服务器,但我收到用户“”的错误
登录失败。该用户未与受信任的SQL Server连接关联。
。有什么想法吗?@GenericTypeTae让服务器以混合模式身份验证或仅集成身份验证方式链接?@bernd_k-它是用混合模式设置的。@genericTypetea您可以配置将本地凭据分配给远程服务器凭据,请参见我回答中的添加。'20.0.0.1\SQLEXPRESS'服务器是生产框,对吗?
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'