将 Table 数据从本地数据库复制到链接服务器数据库的查询

Query to Copy Table Data from local database to linked server database

我正在尝试将 table 的所有行从本地计算机的数据库复制到链接服务器数据库。

这是我正在使用的查询:

DECLARE @Qry nvarchar(MAX)
DECLARE @Server nvarchar(50)
SET @Server = '[LINKEDSERVER]'
SET @Qry = '
      DECLARE @Qry2 nvarchar(max)
      SET @Qry2 = N''
      SET IDENTITY_INSERT RDB.dbo.Type ON
      insert into RDB.dbo.Type (id, Name) Select ID,Name From 
      [LOCALSERVER].localdb.dbo.Type
      SET IDENTITY_INSERT RDB.dbo.Type OFF''
      EXEC ' + @Server + '.RDB.dbo.sp_executesql @Qry2'
EXEC SP_EXECUTESQL @Qry

但是我收到了这个错误 - 请帮助在这里做什么才能让它工作:

Could not find server 'LOCALSERVER' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.

如果删除 [LOCALSERVER] 然后我得到:

Invalid object name 'localdb'.

如果任何其他动态查询可以将 table 数据从本地服务器复制到链接服务器,请提供帮助。

您正在尝试 运行 远程链接服务器中的 sql 语句。在该远程链接服务器中,没有为您的本地服务器定义链接服务器(sys.servers 中的条目)。因此,您收到了错误。

您可以在远程机器上为您的服务器定义链接服务器并执行语句。

DECLARE @Qry nvarchar(MAX)
DECLARE @Server nvarchar(50)
SET @Server = '[LINKEDSERVER]'
SET @Qry = '
      DECLARE @Qry2 nvarchar(max)
      SET @Qry2 = N''
      SET IDENTITY_INSERT RDB.dbo.Type ON
      insert into RDB.dbo.Type (id, Name) Select ID,Name From 
      [LOCALSERVER].localdb.dbo.Type
      SET IDENTITY_INSERT RDB.dbo.Type OFF''
      EXEC ' + @Server + '.RDB.dbo.sp_executesql @Qry2'
EXEC SP_EXECUTESQL @Qry