获取调用CLR函数的SQL语句

时间:2013-06-14 15:11:07

标签: c# sql tsql sqlclr

是否可以从SQL执行的CLR函数中确定首先调用CLR函数的SQL语句。如果没有直接的方法,那么间接的方式是什么,比如获取某种句柄标识符并返回并查询SQL或它的日志以获取该信息?

示例:

SQL执行:

select * from genericTable1 join genericCLRfunction() f on genericTable1.col = f.col;

并且在调用genericCLRfunction()的SQL语句调用的CLR中,我希望最终得到一个等于的字符串:

" select * from genericTable1 join genericCLRfunction()f on genericTable1.col = f.col;"

1 个答案:

答案 0 :(得分:1)

我现在无法尝试这一点,但这是一种可能性。您可以在CLR中获取会话ID,如此...

using (SqlConnection cn = new SqlConnection("context connection=true;"))
{
   cn.Open();
   SqlCommand cmd = new SqlCommand("SELECT @@SPID", cn);
   int spid = Convert.ToInt32(cmd.ExecuteScalar());
   cn.Close();
}

然后,尝试使用此SO问题的接受答案中显示的查询...

List the queries running on SQL Server