2015-06-25 1 views
0

У меня есть пара связанных SQL-серверов: ServerA и ServerB. Я следующее заявление, которое я хотел бы выполнить:Как использовать пакетный API вставки?

INSERT INTO [ServerB].[data_collection].[dbo].[table1] SELECT * FROM [ServerA].[data_collection].[dbo].[table1]

Однако, как мне сообщили в предыдущем вопросе, я спросил here, оказывается, что неявно называемая процедура «sp_cursor» не может справиться с 766 столбцов I я пытаюсь скопировать из ServerA в ServerB, несмотря на то, что в таблице есть только одна строка.

В вышеупомянутом предыдущем вопросе мне сказали, что обходным путем является установка режима доступа «Таблица или просмотр - быстрая загрузка». К сожалению, это немного превышает мой предел знаний SQL. В комментариях к ответу на вышеупомянутый вопрос мне было сообщено следующее:

Чтобы сделать это, похоже, что вам придется выполнять свою работу в пакете SSIS. Ключ состоит в том, что под капотом выполняется INSERT BULK, в отличие от SP_cursor (который вызывал ошибку). Согласно этому вопросу MSDN нет доступа к нему напрямую - он доступен только через API Bulk Insert.

Опять же, это выходит за рамки моих знаний SQL. Итак, как получается, откуда я сейчас - имея только пару связанных серверов - до такой степени, что я могу использовать запросы INSERT BULK?

+0

Я сделал несколько открытий. Оказывается, что я могу вставлять записи с удаленного сервера на локальный сервер, например, выполнение скриптов из ServerA, которое вставляет с ServerB на ServerA или исполнение скриптов, поступающих с ServerB, который вставляет из ServerA в ServerB. Однако я не могу вставлять записи с локального на удаленный сервер. Это, по-видимому, указывает на то, что это проблема с разрешениями, а не sp_cursor, просто неспособная обрабатывать 766 столбцов. – Karasu

ответ

0

SSIS сложный из-за того, насколько он богат, и если вы не чувствуете себя комфортно с ним, я бы не стал рекомендовать этот маршрут. Однако, поскольку это прямой захват и захват, я думаю, что вы, вероятно, могли бы это сделать, используя мастер импорта импорта (в основном мастер для очень простых пакетов SSIS). Подробные инструкции вы найдете here.

Вы выбираете исходную БД и таблицу, а затем базу данных назначения и таблицу, при необходимости сопоставляете столбцы и выполняете ее для передачи данных. Вы даже можете сохранить этот процесс в качестве задания SSIS. Удачи и надеюсь, что это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^