Я пытаюсь отладить отчет SSRS, который показывает некоторые хитрые результаты. Я использую SQL Server Profiler. Я получил точный запрос, который он выполняет, который выполняется с помощью exec sp_executesql.
Запрос возвращает результаты из представления.
Если я запускаю запрос в том виде, в каком он есть, включая sp_executesql, я получаю один набор результатов.
Если я возьму запрос, вложенный внутрь, и выполню его сам, я получу другой набор результатов.
Я понятия не имею, как это возможно. Запросы идентичны, и у меня сложилось впечатление, что sp_executesql просто выполняет запрос.
Есть что-то, что я пропускаю или как я могу отладить это дальше?
вызов exec выглядит примерно так:
exec sp_executesql N'SELECT FirstName, LastName, DateOfBirth FROM ViewName WHERE
DateOfBirth >= @pStartDate AND DateOfBirth <= @pEndDate',N'@pStartDate datetime,
@pEndDate datetime',@pDate='2010-07-17 00:00:00:000',@pEndDate=''2010-07-17
23:59:59:000'
Если я запускаю это, я получаю один набор результатов.
Тогда, если я бегу:
SELECT FirstName, LastName, DateOfBirth FROM ViewName WHERE
DateOfBirth >= '2010-07-17 00:00:00:000' AND
DateOfBirth <= '2010-07-17 23:59:59:000'
Я получаю немного другой набор результатов.