SQL Server:使用填充参数查看最终查询的方法

jac*_*kal 4 c# t-sql sql-server

有没有办法看到从我的C#应用​​程序传递到SQL Server数据库的最终查询?

对于前我有查询:

SELECT * FROM mytable WHERE x = @yyyy;
Run Code Online (Sandbox Code Playgroud)

这将创建和SQLCommand对象

SqlCommand cmd = new SqlCommand("SELECT * FROM mytable WHERE x = @yyyy");
Run Code Online (Sandbox Code Playgroud)

另外我需要传递参数:

cmd.Parameters.Add("@yyyy","MyValue");
Run Code Online (Sandbox Code Playgroud)

我想看到的(在C#中的调试或SQL Server Management Studio中的某个地方)是这样的:

SELECT * FROM mytable WHERE x = MyValue
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到这样的查询?!

最好的祝福

Mar*_*ers 6

我在哪里可以找到这样的查询?!

你不能.这样的查询永远不存在.这些值不会替换为SQL.

我认为实际上调用了sp_executesql,并且此函数接受与SQL分开的参数.您可以使用SQL事件探查器检查这一点以查看实际的SQL.


更新:

ORDER BY @descOrAsc

您的问题是参数只能在允许表达式的某些地方使用.DESC不是表达 - 它是一个保留词.您不能使用包含字符串的参数,"DESC"而不是DESC在查询中编写关键字.

此外,您尚未指定要排序的列.