SQL Server: не удалось найти подготовленный оператор с дескриптором 10 из анализатора запросов
Я запускаю профилировщик SQL, и я хочу запустить некоторые из запросов в анализаторе запросов, но я получаю сообщение об ошибке «SQL Server: не удалось найти подготовленный оператор с дескриптором x».
Есть идеи?
Это SQL, который я скопировал из профилировщика:
declare @p1 int set @p1=10 exec sp_prepare @p1 output,N'@P0 int,@P1 nvarchar(4000),@P2 datetime,@P3 datetime,@P4 datetime,@P5 datetime,@P6 datetime,@P7 datetime',N'SELECT * FROM SCHEDULE WITH (NOLOCK) WHERE RoomNo= @P0 AND STATUS = @P1 AND ( (EndTimeDT <= @P2 AND EndTimeDT > @P3 ) OR (StartTimeDT >= @P4 AND StartTimeDT < @P5 ) OR (StartTimeDT <= @P6 AND EndTimeDT > @P7 ) )',1 select @p1 go exec sp_execute 10,19,N'A','2012-03-22 16:30:00','2012-03-22 16:00:00','2012-03-22 16:00:00','2012-03-22 16:30:00','2012-03-22 16:00:00','2012-03-22 16:30:00' go
это мой второй ответ, я неправильно понял вопрос, когда написал первый.
Почему вы делаете set @p1=10
? Вы не должны устанавливать эту переменную. попробуйте удалить его
Вы должны использовать RPC:Starting
запросов не RPC:Completed
В профилировщике вы обычно увидите RPC:Starting
и RPC:Completed
. Заявление, показанное в RPC:Staring
– это то, что вам нужно выбрать, RPC:Completed
будет включать выходные значения, которые не были переданы от клиента.
Если вы используете RPC:Completed
вы должны удалить SET set @p1=10
чтобы запросы работали
Кажется, вам нужно изменить текст профайлера, если вы хотите запустить его в анализаторе запросов.
declare @p1 int exec sp_prepare @p1 output,N'@P0 int,@P1 nvarchar(4000),@P2 datetime,@P3 datetime,@P4 datetime,@P5 datetime,@P6 datetime,@P7 datetime',N'SELECT * FROM SCHEDULE WITH (NOLOCK) WHERE RoomNo= @P0 AND STATUS = @P1 AND ( (EndTimeDT <= @P2 AND EndTimeDT > @P3 ) OR (StartTimeDT >= @P4 AND StartTimeDT < @P5 ) OR (StartTimeDT <= @P6 AND EndTimeDT > @P7 ) )',1 select @p1 exec sp_execute @p1,19,N'A','2012-03-22 16:30:00','2012-03-22 16:00:00','2012-03-22 16:00:00','2012-03-22 16:30:00','2012-03-22 16:00:00','2012-03-22 16:30:00' go