@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- PR -

Sqlserver2005 profilerをExcelに落とすには?

1
投稿者投稿内容
uk
会議室デビュー日: 2005/10/20
投稿数: 5
投稿日時: 2008-03-31 14:32
profilerの情報をエクセルに展開したいのですが、「TextData」の項目に改行コードが含まれている為、CSV形式で出力すると行が意図しない形で、改行されてしまいます。
対応方法をご存知の方いらっしゃいましたらご教授ください。
最近Sqlserverを始めた者で。。
すみませんお手数お掛けしますがよろしくお願い致します。

なお、SQLSERVERへは以下のSQLを用い、クエリアナライザ上に出すまでは出来ています。

SELECT
ROW_NUMBER() OVER (ORDER BY StartTime,EndTime) AS No
,EventClass AS 'EventClass'
,StartTime AS '開始時間'
,EndTime AS '終了時間'
,Duration AS '経過時間'
,TextData AS '実行SQL'
,ApplicationName AS 'ApplicationName'
,LoginName
,SPID
,Success
,Error
,NTUserName
,NTDomainName
,HostName
,ServerName
,DataBaseName
,RoleName
,DBUserName
,LoginSid
FROM ::fn_trace_gettable('C:\20080326170757_SQLLOG.trc', default)
ORDER BY StartTime,EndTime

[ メッセージ編集済み 編集者: uk 編集日時 2008-03-31 14:42 ]
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2008-03-31 14:52

  • 該当列をダブルクォーテーションでくくる
  • 該当列内の改行をCRLF(0D0F)から、LF(0F)に置換する

の様にすると、セル内の改行になりました。(Excel 2003 SP3で確認)

[ メッセージ編集済み 編集者: かずくん 編集日時 2008-03-31 14:53 ]
uk
会議室デビュー日: 2005/10/20
投稿数: 5
投稿日時: 2008-03-31 15:07
早急なご対応ありがとうございますm(__)m

「該当列をダブルクォーテーションでくくる」
について試しているのですが、もう一点質問させて頂いてよろしいでしょうか。

ダブルクォーテーションを連結しようとした際下記のメッセージが出てしまいます。
「オペランドのデータ型 ntext は add 演算子では無効です。」

度々すみませんがご教授のほどよろしくお願い申し上げます。
uk
会議室デビュー日: 2005/10/20
投稿数: 5
投稿日時: 2008-03-31 15:18
,replace(cast(TextData as varchar(8000)),char(13) + char(10),'') AS '実行SQL'

これでならいけました!
他にやり方ありますかね!?これだと8000文字で切れそうなので。。
でもひとまず大丈夫そうです。ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)