简书链接:SQLSERVER调试输出大法,你还有新的办法吗
文章字数:68,阅读全文大约需要1分钟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE @data XML;
SET @data = EVENTDATA();

-- 将XML数据转换为NVARCHAR(MAX)
DECLARE @EventDataStr NVARCHAR(MAX);
SET @EventDataStr = CAST(@data AS NVARCHAR(MAX));

-- 为了安全地写入文件,可以创建临时表,然后通过bcp工具导出
CREATE TABLE #TempData (EventDataStr NVARCHAR(MAX));
INSERT INTO #TempData VALUES (@EventDataStr);

DECLARE @Command NVARCHAR(1000);
SET @Command = 'bcp "SELECT EventDataStr FROM #TempData" queryout "D:\eventdata.txt" -T -c';
EXEC xp_cmdshell @Command;

-- 清理临时表
DROP TABLE #TempData;
1
2
DECLARE @EventDataVarChar varchar(8000) = REPLACE(@EventDataStr, '''', ''''''); 
declare @mycommand varchar(8000)='echo '+CONCAT(@EventDataStr,' > D:\eventdata.txt');
'xx'
1
2

''' select ''```
1
2
3
4
select 1
RAISERROR ('New tables cannot be created in this database.', 16, 1)
select 2

还有网络提交法,这里就没提到了