无法运行" INSERT INTO"来自Azure SQL外部表

时间:2016-09-02 10:12:30

标签: sql-server azure-sql-database sharding external-tables

在我的Azure SQL DB中,我有一个外部表 - 让我们调用此tableName_origData - 我还有另一个表,我们将其称为tableName

tableName是使用CREATE生成的tableName_origData脚本(位于原始位置)创建的,因此我可以确定所有列类型都相同。

然而,当我跑

INSERT INTO tableName (
    [list of column names]
)
SELECT
    [same list of column names]
FROM
    tableName_origData

我遇到以下异常:

  

大对象列支持仅限于nvarchar(max)数据   类型。

就我对Azure SQL数据类型的理解而言,我没有比NVARCHAR(MAX)更大的东西。此外,该消息暗示支持NVARCHAR(MAX) <(并且我可以看到相同的脚本适用于包含NVARCHAR(MAX)的其他表。

任何人都可以更好地解释这个异常的原因以及为了将其数据插入到相同的表中我可能需要做些什么吗?

以下是表格中使用的所有列类型的列表:

BIGINT x 3
NCHAR(20) x 1
NVARCHAR(45) x 5
NVARCHAR(100) x 14
NVARCHAR(MAX) x 10

1 个答案:

答案 0 :(得分:0)

外部表是只读的。开发人员可以选择数据,但不能执行任何形式的DML处理

要解决此问题,请使用此技巧:

https://technology.amis.nl/2005/04/05/updateable-external-tables/

警告:除非最简单的用途,否则我们不建议将此技术用于任何严肃的应用