【问题标题】:Insert data from local to [LINKEDSERVER]将数据从本地插入到 [LINKED SERVER]
【发布时间】:2023-02-24 10:50:08
【问题描述】:

我需要将数据从我自己的本地表插入到我构建的链接服务器中的表中。我遇到了一些麻烦。请参见。

SELECT TOP 100 * FROM [LinkedServerName].[database].[Schema].[table]

可以查询到数据,linkserver连接没问题

INSERT INTO [LinkedServerName].[database].[Schema].[table]  
(row1, row2) VALUES (value1, value2)

错误消息:游标支持不是 SQL 的已实现功能 服务器并行数据仓库 TDS 端点。

EXEC ('INSERT INTO [database].[Schema].[table] (row1, row2) VALUES (value1, value2)') AT [LinkedServerName]

这个insert可以,成功了,但是我的数据很多,用游标一个一个插入会影响速度。

EXEC ('INSERT INTO [database].[Schema].[table] (row1, row2) SELECT r1,r2 form [mylocalserver].[database].[Schema].[table]') AT [LinkedServerName]

[我的本地服务器].[数据库].[架构].[表]不存在 链接服务器。

那么如何在“EXEC() AT”语法中引用我的 LOCAL 表呢?

我也试过插入openquery

insert into openquery([LinkedServerName],'Select row1, row2 from [database].[Schema].[table]' )
select r1, r2 from [mylocalserver].[database].[Schema].[table]

错误消息:游标支持不是 SQL 的已实现功能 服务器并行数据仓库 TDS 端点。

想知道怎么解决,谢谢大家。

【问题讨论】:

  • 我认为您可以尝试使用 INSERT INTO ... SELECT 语句在单个查询中将本地表中的数据插入到链接服务器表中。
  • 我知道你的意思。我试过了,但它有问题。错误信息:游标支持不是 SQL Server Parallel DataWarehousing TDS 终结点的已实现功能。
  • 好的。 #tempTable怎么样?你试过了吗?
  • 我刚刚测试了同样的错误

标签: sql-server sql-server-2016


【解决方案1】:

也许你可以这样尝试:

CREATE TABLE #temp_table (
    row1 datatype,
    row2 datatype
)

INSERT INTO #temp_table
(row1, row2)
SELECT r1, r2
FROM [mylocalserver].[database].[Schema].[table]

INSERT INTO [LinkedServerName].[database].[Schema].[table]
(row1, row2)
SELECT row1, row2
FROM #temp_table

DROP TABLE #temp_table

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多