Polybase SQL Server 2019 в контейнере для SQL Server 2019 OnPremise - не работает вставка во внешнюю таблицу

У меня есть SQL Server 2019 в контейнере Docker с включенным polybase, и я подключаюсь к SQL Server 2019 On Premise с включенным polybase. Я создал внешнюю таблицу в Docker -SQL Server.

Я также разрешил экспорт polybase, перезапустил локальный сервер sql 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


person Priya    schedule 10.03.2020    source источник


Ответы (1)


Внешние таблицы доступны только для чтения. Как сообщает ошибка, вы не можете выполнять с ними операции DML (такие как SELECT, UPDATE и т. Д.).

Это также описано в статье СОЗДАТЬ ВНЕШНЮЮ ТАБЛИЦУ (Transact-SQL): ограничения и ограничения:

Только эти операторы языка определения данных (DDL) разрешены во внешних

таблицы:

  • СОЗДАТЬ ТАБЛИЦУ и УДАЛИТЬ ТАБЛИЦУ
  • СОЗДАТЬ СТАТИСТИКУ и УДАЛИТЬ СТАТИСТИКУ
  • СОЗДАТЬ ВИД и УДАЛИТЬ ВИД

Конструкции и операции не поддерживаются:

  • Ограничение DEFAULT для столбцов внешней таблицы
  • Операции удаления, вставки и обновления языка обработки данных (DML)

Акцент мой.

person Larnu    schedule 10.03.2020
comment
Благодарим вас за ответ. Что это за параметр экспорта, представленный здесь: docs.microsoft.com/en-us/sql/relational-databases/polybase/ - person Priya; 10.03.2020
comment
Вы специально используете Hadoop? Также обратите внимание, что поддерживаемая версия - SQL Server (только для Windows) @Priya. В своем вопросе вы указываете, что используете Docker, и именно там вы создали внешнюю таблицу. Докер - это не Windows. - person Larnu; 10.03.2020