您可以FOR XML PATH('')
在查询末尾追加,您将获得一个大 XML 字符串的结果。之后,您可以使用 XML 解析来拆分它。请参阅有关FOR XML PATH 子句的文档和与解析输出相关的 StackOverflow 问题。
下面是一些产生你想要的输出的示例 T-SQL:
declare @xmlblock xml
select @xmlblock = (
select
*
from
sys.dm_exec_connections as EC inner join
sys.dm_exec_sessions as ES on ES.session_id= EC.session_id
where
EC.session_id = @@SPID
for xml path('')
)
declare @logline nvarchar(max)
set @logline = ''
select
@logline = @logline
+ XmlChanges.value('local-name(.)', 'nvarchar(max)')
+ ': '
+ XmlChanges.value('.', 'nvarchar(max)')
+ char(13) + char(10)
from
@xmlblock.nodes('/*') as Nodes(XmlChanges)
select @logline
输出看起来像:
session_id: 52
most_recent_session_id: 52
connect_time: 2013-06-12T15:05:48.607
net_transport: TCP
protocol_type: TSQL
...