Импорт нескольких файлов в таблицу - PullRequest
0 голосов
/ 05 января 2011

У меня есть каталог, полный файлов.Это SQL-скрипты, но я не хочу их запускать.Я хочу импортировать содержимое файлов сценариев в таблицу в моей базе данных, чтобы запустить ее позже.Каждый файл будет иметь свою собственную строку в таблице.

В настоящее время я работаю с Powershell, но если есть другой более простой метод, который не использует стороннее программное обеспечение, я бы тоже был к этому открыт.1003 *

Первоначально я начал писать код, который будет циклически проходить по файлам, использовать StreamReader для получения содержимого, а затем создать оператор вставки для выполнения.Однако я понял, что могут быть большие проблемы со встроенными кавычками в файлах и т. Д.

Спасибо за любой совет, который вы можете дать!

Ответы [ 2 ]

2 голосов
/ 05 января 2011

Можете ли вы удалить встроенные кавычки и пометить их как логические разделы, которые должны быть заменены на String.Replace(old_str,new_str) или tsql REPLACE в вашей логике?Пример ниже показывает маркер <condition_string>, поэтому вы знаете, что позаботились о нем.

declare @finalQuery nvarchar(1000)

SET @finalQuery = 
(SELECT REPLACE ((
   SELECT REPLACE ((
      SELECT  REPLACE('Select <column_names> from <table_name> where 
                              <condition_string>' COLLATE Latin1_General_BIN,
      '<column_names>', 
      'ID,[name]' )),
   '<table_name>',
   '[MyTable]')),

'<condition_string>',
'[name] like ''%John%'''));

EXEC(@finalQuery);

GO
0 голосов
/ 05 января 2011

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

Недостатком этих методов является то, что вы не можете просто искать их с помощью SQL-запроса, но не говорите, является ли это проблемой для вас?

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