Можно ли использовать SQL Server массовую вставку без файла? - PullRequest
8 голосов
/ 07 сентября 2010

Любопытно, если это возможно: сервер приложений и сервер БД живут в разных местах (очевидно). В настоящее время сервер приложений создает файл для использования с массовой вставкой SQL Server.

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

Что я хотел бы знать: возможно ли обойти файловую систему в этом случае? Возможно, я смогу передать данные на сервер sql и создать файл?

Я на SQL Server 2008, если это имеет значение.

спасибо!

Ответы [ 2 ]

12 голосов
/ 07 сентября 2010

Я не думаю, что вы можете сделать это с помощью инструмента SQL Server массового копирования, но если ваше приложение написано с использованием .NET, вы можете использовать класс System.Data.SqlClient.SqlBulkCopy для массовой вставки строк из таблицы данных (илилюбой источник данных, к которому вы можете получить доступ с помощью SqlDataReader).

1 голос
/ 07 сентября 2010

Из документации по массовой вставке:

BULK INSERT 
   [ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ] 
      FROM 'data_file' 

FROM 'data_file' не является обязательным и указывается следующим образом:

'data_file' Полный путь кфайл данных, который содержит данные для импорта в указанную таблицу или представление.BULK INSERT может импортировать данные с диска (включая сеть, дискету, жесткий диск и т. Д.).

data_file должен указывать допустимый путь с сервера, на котором работает SQL Server.Если data_file является удаленным файлом, укажите имя универсального соглашения об именах (UNC).UNC-имя имеет форму \ Systemname \ ShareName \ Path \ FileName.Например, \ SystemX \ DiskZ \ Sales \ update.txt.

Ваше приложение может выполнить вставку напрямую, используя любой метод, соответствующий вашим требованиям к производительности.

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