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

Cursor support is not an implemented feature for SQL Server Parallel DataWarehousing TDS endpoint

我在本地 SQL 名为(SynapseSql - 链接服务器名称)

的服务器上创建了到 Azure synapse SQL 池(专用池)的链接服务器

当我尝试运行这个查询时:

INSERT INTO [SynapseSQL].[DW].[dbo].[t1] ([col1]) VALUES (1)

它给我一个错误:

Msg 46706, Level 16, State 1, Line 1
Cursor support is not an implemented feature for SQL Server Parallel DataWarehousing TDS endpoint.

这是否意味着我们不能 insert/update/delete 使用链接服务器中的并行查询将数据发送到突触?

任何人都可以帮助我在我的 SProc 中为专用 SQL 池使用并行查询吗?

谢谢!

Microsoft Azure 数据仓库不支持普通 SQL 服务器或 SQL Azure 数据库的功能。例如,Azure 数据仓库不支持服务器端游标。使用 Microsoft SQL Server JDBC 驱动程序或 jTDS JDBC 驱动程序连接到 Azure 数据仓库时,必须将驱动程序设置为不使用游标,否则某些部分会出现问题查询。

作为链接服务器,它们允许创建它们的实例从外部数据源读取数据以及对远程数据库服务器执行命令。

作为解决方法,可以使用:

EXEC ('INSERT INTO dbo.t1 VALUES(1)') at yourLinkedServer;

WITH t1 as ( select * FROM schema.table ) select * FROM t1

这是 Original Post 描述的解决方法和限制。