我想知道是否有办法检索在数据库服务器上执行的(完整)sql语句。
我发现了一些了,但它不完全是我想什么:检索LINQ to sql语句(IQueryable)WITH参数
IQueryable<SomeType> someQuery = ...
string command = dataContext.GetCommand(query).CommandText;
在我的情况下,这给了我一个命令字符串是这样的:
SELECT TOP (50) [t0].[ID], ....
FROM [dbo].[someTable] AS [t0]
WHERE ([t0].[someColumn] IS NOT NULL) AND (([t0].[someColumn]) IN (@p0))
在数据库还有的执行:
exec sp_executesql N'SELECT TOP (50) [t0].[ID], ...
FROM [dbo].[someTable] AS [t0]
WHERE ([t0].[someColumn] IS NOT NULL) AND (([t0].[someColumn]) IN (@p0, @p1))',N'@p0 int,@p1 int',@p0=401,@p1=201
有没有办法从C#代码中检索这个'完整'语句(所以也是参数值)?
查看类似的问题(重:生成SQL)这里http://stackoverflow.com/questions/265192/how-to -get-the-generated-sql-statment-from-a-sqlcommand-object它可能提供一些见解。 – 2011-06-14 13:09:41