Я пытаюсь отладить отчет SSRS, который показывает некоторые сомнительные результаты. Я использую профилировщик sql. Я получил точный запрос, который он выполняет, который выполняется с помощью 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'
Я получаю несколько иной набор результатов.