Ich erstellte ein Batch-Skript, das eine T-SQL-Datei aufruft und es in eine Textdatei ausgibt. Die T-SQL-Datei enthält die SELECT-Anweisung einer Tabelle, um die Informationen der Spalte mit XML als Datentyp abzurufen. Die Datei wird dann entweder als E-Mail-Inhalt oder als Anhang gesendet. Allerdings, wenn ich die Textdatei öffnen, sehe ich eine lange Liste von Informationen ähnlich den folgenden:Was ist die geeignete Ausgabedatei von T-SQL-Abfrage der Tabelle, die XML als Datentyp hat
<`EVENT_INSTANCE><EventType>CREATE_INDEX</EventType <PostTime>2009-05-29T12:54:28.463...
Was ich erwarte ist Inhalt wie die aussieht, um zu sehen unter:
<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>
Wenn dies nicht möglich ist, erwarte ich die Ausgabe der Abfrage wie die unten schauen, um zu sehen:
Event Post Time Server Name
----- --------- -----------
CREATE INDEX 2009-05-29T12:54:28.463 Server\Instance
Meine Frage ist: Was ist die entsprechende Ausgabedatei ist, auf denen die Ergebnisse der Abfrage zu senden, damit ich kann habe mehr aussagekräftige und organisierte Sicht auf die Ergebnisse?
ADDITION:
Nachfolgend finden Sie die Inhalte des Batch-Skript:
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
ADDITION 2:
Die qrydll.sql gerade diese Inhalte haben:
use <database_name>
GO
SELECT EventData FROM dbo.ChangeAttempt
Die Tabelle dbo.ChangeAttempt hat diese Struktur:
Column Name Data Type
----------- ---------
EvenData xml
AttemptDate datetime
DBUser char(50)
Denkst du nicht, du solltest uns das Skript zeigen, das diese Ausgabe erzeugt? –
Ihr 'inkorrektes' XML hat einige fehlende Zeichen, wie schließende Klammern und ähnliches. Ist das das Problem, auf das du dich beziehst? Ansonsten kann ich nicht sehen, wo die Frage ist, XML ist XML, kein Textdokument. @John Diese Ausgabe ist die Ausgabe der DDL-Trigger oder der Nachrichtentext einer Ereignisbenachrichtigung. –
@titanium: danke für die Bearbeitung. Jetzt zeig uns bitte das Skript. Sollen wir raten, was das Skript macht? –