数据类型为XML的表的T-SQL查询的适当输出文件是什么
我创建了一个批处理脚本,用于调用T-SQL文件并将其输出到文本文件。T-SQL文件包含一个表的select语句,用于获取数据类型为XML的列的信息。然后,该文件将以电子邮件正文或附件的形式发送。但是,当我打开文本文件时,我会看到一长串类似于以下内容的信息:数据类型为XML的表的T-SQL查询的适当输出文件是什么,sql,sql-server,xml,tsql,Sql,Sql Server,Xml,Tsql,我创建了一个批处理脚本,用于调用T-SQL文件并将其输出到文本文件。T-SQL文件包含一个表的select语句,用于获取数据类型为XML的列的信息。然后,该文件将以电子邮件正文或附件的形式发送。但是,当我打开文本文件时,我会看到一长串类似于以下内容的信息: <`EVENT_INSTANCE><EventType>CREATE_INDEX</EventType <PostTime>2009-05-29T12:54:28.463... <EVENT_
<`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
您所缺少的只是空白,空白与真正的xml无关。无论读什么,都会以同样的方式对待它。您不认为应该向我们展示创建此输出的脚本吗?您的“不正确”XML缺少一些字符,如右括号等。这就是你指的问题吗?因为否则我看不出问题在哪里,XML是XML,而不是一些文本文档@John此输出是DDL触发器的输出或事件通知消息的正文。@谢谢您的编辑。现在请给我们看剧本。我们是不是要猜剧本的作用?
use <database_name>
GO
SELECT EventData FROM dbo.ChangeAttempt
Column Name Data Type
----------- ---------
EvenData xml
AttemptDate datetime
DBUser char(50)