Я создал пакетный скрипт, который вызывает файл T-SQL и выводит его в текстовый файл. Файл T-SQL содержит оператор выбора таблицы, чтобы получить информацию о столбце с XML в качестве типа данных. Затем файл будет отправлен с содержимым в виде основного письма или в качестве вложения. Однако, когда я открываю текстовый файл, я вижу длинный список информации, подобный приведенному ниже:
<`EVENT_INSTANCE><EventType>CREATE_INDEX</EventType <PostTime>2009-05-29T12:54:28.463...
Я ожидаю увидеть содержимое, похожее на приведенное ниже:
<EVENT_INSTANCE>
<EventType>CREATE_INDEX</EventType>
<PostTime>2009-05-29T12:54:28.463</PostTime>
<SPID>54</SPID>
<ServerName>SERVER\INSTANCE</ServerName>
<LoginName>Domain\username</LoginName>
<UserName>dbo</UserName>
<DatabaseName>AdventureWorks</DatabaseName>
<SchemaName>dbo</SchemaName>
<ObjectName>ni_ChangeAttempt_DBUser</ObjectName>
<ObjectType>INDEX</ObjectType>
<TargetObjectName>ChangeAttempt</TargetObjectName>
<TargetObjectType>TABLE</TargetObjectType>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON" ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON" ENCRYPTED="FALSE" />
<CommandText>CREATE NONCLUSTERED INDEX ni_ChangeAttempt_DBUser ON
dbo.ChangeAttempt(DBUser)
</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>
Если вышеописанное невозможно, я ожидаю, что результат запроса будет выглядеть примерно так:
Event Post Time Server Name
----- --------- -----------
CREATE INDEX 2009-05-29T12:54:28.463 Server\Instance
У меня вопрос: какой файл вывода подходит для отправки результатов запроса, чтобы я мог иметь более осмысленное и более организованное представление результатов?
Сложение:
См. Ниже содержимое пакетного сценария:
osql -E -S SERVER\INSTANCE -d <database_name> -iD:\scripts\qryddl.sql -oD:\scripts\qryddl01.txt -w2000 -n -h
bmail -s <ip address> -t <email> -f <email> -h -a " Database Object Changes from <ServerName>" -m D:\scripts\qrydll.txt
ДОПОЛНЕНИЕ 2:
У qrydll.sql просто есть это содержимое:
use <database_name>
GO
SELECT EventData FROM dbo.ChangeAttempt
Таблица dbo.ChangeAttempt имеет следующую структуру:
Column Name Data Type
----------- ---------
EvenData xml
AttemptDate datetime
DBUser char(50)