SQL Server - Вставьте 2M + записи в сценарии SQL с 7000 строк на вставку - PullRequest
0 голосов
/ 25 апреля 2019

Я ищу любое предложение для обхода 1000 строк на лимит вставки в SQL Server.

У меня есть сценарий дампа MySQL, который имеет несколько 100 строк, каждая строка представляет собой оператор вставки, который содержит около 7000строк.

Я не могу вставить это непосредственно в SQL Server из-за ограничения в 1000 строк на одну вставку.

Существует ли какой-либо "простой" обходной путь или только один способ - программно идентифицировать строки и создатьвставить в каждую строку?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Вы можете попробовать UNION ALL SELECT трюк, чтобы выполнить вставку, так как это всего 7000 строк, и у вас не будет проблем с производительностью.

INSERT INTO Table1 (ValueA, ValueB)
SELECT 1, 2
UNION ALL SELECT 3,4
UNION ALL SELECT 5,6;

Таким образом, у вас не будет ограничения в 1000 строк в предложении VALUES.

Существует еще один подход, упомянутый в посте Stackoverflow , где у вас есть INSERT INTO TABLE для каждого оператора INSERT.

0 голосов
/ 25 апреля 2019

Чтобы правильно ответить на ваш вопрос, в точности так, как он задан, нет, в интерфейсе SQL изначально нет способа преодолеть ограничение INSERT. Вам нужно будет создать программное решение. В моем комментарии я перечислил некоторые технологии, такие как Python, PowerShell и .NET. Вы можете объединить решение с помощью BCP, BULK INSERT, SSIS или другого инструмента BI. Вот несколько ссылок на C #, в которых говорится о массовой вставке большого набора данных:

Быстро вставьте 2 миллиона строк в SQL Server

Массовая вставка с SQL Server (C #)

Также был задан похожий вопрос, и принятый ответ предлагает использовать мастер импорта SQL Server:

Мастер импорта - массовая вставка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...