2013-09-06 7 views
2

Проверьте мой последний вопрос Export values from SQL Server to txt file. Я могу экспортировать значения в файл .txt с моим последним вопросом. Я хочу сделать экспорт @tempTable в .txt файл. Как я могу это сделать?Экспорт @tempTable в файл .txt на сервере SQL

Edit: Мое требование: Я хочу, чтобы экспортировать только обновленные данные из таблицы в .txt файл, например, пользователь вставить 10 новых строк данных в существующей таблице, я хочу, что 10 строк, чтобы быть там в текстовом файле , Я использовал Inserted table в триггере для получения обновленных строк, когда я пытаюсь экспортировать в .txt-файл с bcp, я не могу, так как не знаю полного контекста вставленной таблицы ([database]. [Schema]. [TableName ]). Поэтому я решил добавить данные таблицы в @tempTable для экспорта .txt-файла.

Это, я полагаю, export inserted table data to .txt file in SQL server.

ответ

0

можно просто загрузить таблицу памяти в обычную таблицу затем использовать код для экспорта, что у вас уже есть

select * into queryout from @tempTable 
-- your code from step 1 
drop table queryout 

здесь обновленная версия вашего триггера, который должен сделать работу

create trigger monitorTest1 on test for insert as 
declare @sql varchar(8000); 
select * into tempTable from inserted 
SELECT @sql = 'bcp "select * from test2.dbo.tempTable" queryout C:\temp\mytest.txt -c -t -T -S localhost' 
exec xp_cmdshell @sql 
drop table tempTable 
+0

'create trigger monitorTest1 on test для вставки as create table tempTable (имя varchar (100), id int); Вставить в tempTable выбрать * из вставленного; Объявление @sql varchar (8000); SELECT @sql = 'bcp "выберите * из test2.dbo.tempTable" queryout I: \ File \ mytest.txt -c -t -T -S YAMUNA \ SQLEXPRESS'; exec xp_cmdshell @sql; drop table tempTable; go' Я так пробовал, но это вызывает бесконечный цикл выполнения (не завершение выполнения, продолжайте работать), когда я пытаюсь вставить значение в таблицу 'test' – niren

+0

' create trigger monitorTest1 при тестировании после вставки as select * в запрос из вставленного; Объявление @sql varchar (8000); SELECT @sql = 'bcp "select * from queryout" queryout I: \ File \ mytest.txt -c -t -T -S YAMUNA \ SQLEXPRESS'; exec xp_cmdshell @sql; выпадающий список запросов; go' Я тоже попробовал ваше предложение, но тот же результат (продолжайте выполнение никогда не завершайте). – niren

+0

Я пробовал свой ответ: я создал триггер, как вы говорите в своем обновленном ответе для тестовой таблицы, и я пытаюсь вставить значение в тестовую таблицу, в результате: он продолжает выполнение никогда не завершается. – niren