我运行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
Run Code Online (Sandbox Code Playgroud)
Smi*_*ith 13
你不应该使用RPC:Starting查询RPC:Completed
在分析器中,您通常会看到RPC:Starting和RPC:Completed.显示的语句RPC:Staring是您需要选择的语句,RPC:Completed包括未从客户端传递的输出值.
如果您使用,RPC:Completed您应该删除SET set @p1=10查询工作
Die*_*ego 12
这是我的第二个答案,我在写第一个问题时误解了这个问题.
你为什么这样做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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19524 次 |
| 最近记录: |