2013-02-22 3 views
-1

У меня сложный запрос, который упорядочивает данные во временную таблицу, и затем я маршал в следующую временную таблицу вывода, прежде чем окончательно выбрать ее для отображения на экран. Это будет спасено от представления Grid, до текста, и я получаю файл, который мне нужен для обработки с сайта.SSMS-запрос к текстовому файлу

Я хочу, чтобы этот запрос выполнялся с возможностью запуска и создавал этот файл на локальном диске, без необходимости в том, чтобы оператор менял параметр «Результаты», или во что-то возиться.

Какая команда или функции могут быть доступны мне для этого?

Я не могу установить какие-либо хранимые процедуры или аналогичные серверу.

+0

Когда вы говорите, что вы не можете установить какие-либо хранимые процедуры на сервер, вы просто имеете в виду существующие базы данных? Можно ли создать новую базу данных для хранения вашего кода? Это довольно распространенная практика для экземпляров, которые используются для баз данных поставщиков. –

+0

Ничего не может быть установлено на серверный период, поэтому вы не можете отправить его в СП и рекомендовать BCP: o) – Paul

+0

Можете ли вы создать запланированную задачу? Вы можете использовать osql с перенаправлением в файл. http://www.sqlservercentral.com/Forums/Topic424456-8-1.aspx#bm424460 –

ответ

2

Поскольку вы ничего не можете сделать на сервере, я бы предложил написать пакет SSIS. Создайте поток данных, а в исходном объекте поместите свой скрипт. Затем объект назначения укажет на нужный файл. У вас есть много вариантов вывода.

пакет SSIS затем может быть запущен

  1. A SQL Работа (предполагается, что вы позволили даже этого)
  2. Беспоставочной SQL заданий работает файл битой с командой DTExec
  3. DTEXECUI GUI ,

Также вы можете сохранить свой пакет SSIS в экземпляре или на любом выбранном вами файле.

+0

Это звучит разумно, но я никогда раньше не открывал BIDS или пакет SSIS. Кажется, что на 95% он получил удар, но, к сожалению, не может создать успешный источник. Мой запрос, вероятно, слишком сложный, чтобы просто вставить его как команду SQL. – Paul

+0

Обычно я использую OLE DB Source, но я никогда не пробовал вкладывать в него огромный запрос. У вас есть возможность вытащить запрос из переменной, и это может работать лучше. В качестве альтернативы вы можете попробовать выполнить задачу ExecuteSQL, которая может вывести код из файла. Я не уверен, как это работает, но вы можете попробовать создать таблицу в tempdb USE tempdb; GO CREATE TABLE dbo.memptemptable Затем укажите таблицу из вашего источника как tempdb.dbo.memptemptable. Затем после того, как в вашем потоке данных появится другая задача EXECUTE SQL, которая отбрасывает таблицу. –

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