【问题标题】:Polybase SQL Server 2019 in Container to SQL Server 2019 OnPremise - Insert into external table not working容器中的 Polybase SQL Server 2019 到 SQL Server 2019 OnPremise - 插入外部表不起作用
【发布时间】:2020-06-22 18:06:30
【问题描述】:

我在启用了 polybase 的 Docker 容器中安装了 SQL Server 2019,并且我正在连接到启用了 polybase 的 SQL Server 2019 On Premise。我在 Docker -SQL Server 中创建了外部表。

我还允许 polybase 导出,重新启动本地 sql server 2019。

EXEC sp_configure 'allow polybase export', 1;  
RECONFIGURE 

SELECT 工作正常。但是当我尝试插入时

INSERT INTO Student 
select 3, 'Amaya', 'A+'

错误:

在第 53 行开始执行查询
消息 46519,级别 16,状态 16,线路
外部表不支持 DML 操作。
总执行时间:00:00:00.107

【问题讨论】:

    标签: export polybase sql-server-2019


    【解决方案1】:

    外部表是只读的。正如错误告诉您的那样,您无法对它们执行 DML 操作(例如 SELECTUPDATE 等)。

    这也记录在文章CREATE EXTERNAL TABLE (Transact-SQL): Limitations and Restrictions

    仅允许在外部使用这些数据定义语言 (DDL) 语句

    表格:

    • 创建表和删除表
    • 创建统计信息并删除统计信息
    • 创建视图和删除视图

    构造和操作不支持

    • 外部表列的 DEFAULT 约束
    • 删除、插入和更新的数据操作语言 (DML) 操作

    强调我的。

    【讨论】:

    • 感谢您的回答,这里给出的导出选项是什么:docs.microsoft.com/en-us/sql/relational-databases/polybase/…
    • 您是专门使用 Hadoop 的吗?另外,请注意支持的版本是 "SQL Server (仅限 Windows)" @Priya 。您在问题中声明您正在使用 Docker,这就是您创建外部表的地方。 Docker 不是 Windows。
    猜你喜欢
    • 2020-03-31
    • 2020-09-13
    • 2019-04-24
    • 2021-10-16
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多