日期:2014-05-18  浏览次数:20467 次

SQL Server,如何取得所运行的SQL语句列表?
现在有一个存储过程是用SQL/CLR技术,C#语言编写的。 编译后得到DLL部署到SQL Server上。

问题是,怎样得到这个DLL里面所执行的SQL语句列表呢? SQL Server有这个功能吗?就是列出所执行的SQL语句的功能。。。

前提: 这个DLL不输出任何log。


[题外话]
 这个DLL是自己开发的,当然有源代码。读源代码就能列出所执行的所有SQL语句。
 可是领导要“执行时”的SQL语句列表。我读源代码所列出的SQL语句列表不被采用。
 然后就让我调查怎样才能取得SQL Server给我的SQL语句列表。。。

我很惆怅。
希望广大高手提供宝贵经验,告诉我怎样做,我好去见大老总。。。

本人先在此跪谢了。

------解决方案--------------------
SQL Server Profiler
------解决方案--------------------
SQL Server Profiler能跟踪sql server实时运行语句的。
------解决方案--------------------
方式很多。
没事看看系统的一些功能。
use master
SELECT db_name(s1.dbid), 
s2.text
FROM sysprocesses AS s1 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
WHERE s2.objectid is null 
ORDER BY s1.sql_handle

各种dm中都有不少你喜欢的信息。
------解决方案--------------------
使用SqlServer 自带的工具SQL Server Profiler,可以实现你的功能,这个工具功能蛮强大的。
------解决方案--------------------
同意5楼
------解决方案--------------------
SQL Server Profiler中事件选择把TSQL事件和STORED PROCEDURES事件里面的关注项都选上,可以显示存储过程里面每一步的SQL语句,就是输出太多机器差点会卡卡的。