Sql server sql:sp_cursorexecute执行错误

Sql server sql:sp_cursorexecute执行错误,sql-server,tsql,stored-procedures,execution,Sql Server,Tsql,Stored Procedures,Execution,当用户登录程序时,我有下一个代码: declare @p1 int set @p1=1073741826 declare @p2 int set @p2=180150003 declare @p5 int set @p5=1 declare @p6 int set @p6=8 declare @p7 int set @p7=1 exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 varchar(30)',N' SELECT US_Warning

当用户登录程序时,我有下一个代码:

declare @p1 int
set @p1=1073741826
declare @p2 int
set @p2=180150003
declare @p5 int
set @p5=1
declare @p6 int
set @p6=8
declare @p7 int
set @p7=1
exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 varchar(30)',N'
SELECT  US_WarningFlag, datediff(day, ISNULL(US_LastPassChange, convert(datetime, ''1900-01-01'',
 120)), GetDate()), ISNULL(US_PassExpireTime, -1), US_PassMinLength
FROM    dbo.UserList    
WHERE   US_UserID = @P1',@p5 output,@p6 output,@p7 output,'Userlogin'
select @p1, @p2, @p5, @p6, @p7<br/>
declare@p1 int
设置为p1=1073741826
声明@p2int
设置为p2=180150003
声明@p5 int
设置为@p5=1
声明@p6 int
设置为@p6=8
声明@p7 int
设置为@p7=1
执行sp_cursorprepexec@p1输出,@p2输出,N'@p1 varchar(30'),N'
选择US_WarningFlag,datediff(day,ISNULL(US_LastPassChange,convert(日期时间,'1900-01-01'),
120),GetDate()),ISNULL(US_PassExpireTime,-1),US_PassMinLength
从dbo.UserList
其中US_UserID=@P1'、@p5输出、@p6输出、@p7输出、'Userlogin'
选择@p1、@p2、@p5、@p6、@p7
这是完全错误的:

Msg 16902,16级,状态20,程序sp_cursorprepexec,第1行 sp_cursorprepexec:参数“scrollopt”的值无效


有人知道如何解决这个问题吗?

注释掉@p1和@p2的设置,并设置@p5=4097。
如果不是打字错误的话,还可以去掉末尾的html换行符


我认为您正在RPC:Completed上查看概要文件/跟踪结果。查找匹配的(通过SPID)RPC:Starting,应该在不进行任何编辑的情况下执行。

注释掉@p1和@p2的设置,并设置@p5=4097。
如果不是打字错误的话,还可以去掉末尾的html换行符


我认为您正在RPC:Completed上查看概要文件/跟踪结果。找到匹配的(通过SPID)RPC:Starting,这应该在不进行任何编辑的情况下执行。

我必须将RPC:Starting选项添加到跟踪事件选择中才能找到它,但一旦我添加了,我就可以在MSMS中不加修改地执行查询。我必须将RPC:Starting选项添加到跟踪事件选择中才能找到它,但一旦我添加了,我可以不经修改地在MSMS中执行查询