SQL Server Management Studio中复制查询结果保持原有的格式

1、运行如下的监控语句,看当前某个会话的sql运行到哪一步了,找到卡住的sql,然后再有针对的进行优化:

--监控SQL执行到哪一步
SELECT session_id,
       b.text,
       DB_NAME(b.dbid) AS DBname,
       OBJECT_NAME(b.objectid) AS objname,
       SUBSTRING(   text,
                    statement_start_offset / 2,
                    (CASE
                         WHEN statement_end_offset = -1 THEN
                             LEN(CONVERT(NVARCHAR(MAX), text)) * 2
                         ELSE
                             statement_end_offset
                     END - statement_start_offset+4
                    ) / 2
                ) AS query_text,
       c.query_plan,
       a.*
FROM sys.dm_exec_requests AS a
    OUTER APPLY sys.dm_exec_sql_text(sql_handle) b --获取sql文本
    OUTER APPLY sys.dm_exec_text_query_plan(plan_handle, a.statement_start_offset, a.statement_end_offset) c
WHERE a.session_id = @@SPID

这里查的是当前会话,也就是 session_id = @@spid。

query_text列 就是当前运行的sql,查询结果如下:

 

2、复制其中的query_text列,发现整个语句都在1行上,效果如下图:

由于没有格式,这个语句没办法看,而且如果语句中包含了注释符号的话,运行语句也会报错。

 

3、这个时候只需要在编辑器中右键,选择 查询选项,在弹出框里选择 结果 -》 网格 -》复制或保存时保留 CR/LF: 

SQL Server Management Studio中复制查询结果保持原有的格式_第1张图片

再次复制text列后,会保留原始sql的格式,效果如下:

SQL Server Management Studio中复制查询结果保持原有的格式_第2张图片

 

你可能感兴趣的:(【SQL,Server管理】)