sql: sp_cursorexecute 执行错误

Posted

技术标签:

【中文标题】sql: sp_cursorexecute 执行错误【英文标题】:sql: sp_cursorexecute execute error 【发布时间】:2014-09-29 14:06:54 【问题描述】:

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

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/>

完成但有错误:

消息 16902,级别 16,状态 20,过程 sp_cursorprepexec,第 1 行 sp_cursorprepexec: 参数“scrollopt”的值无效。

有人知道,如何解决?

【问题讨论】:

【参考方案1】:

注释掉@p1和@p2的设置,设置@p5 = 4097。 如果那不是错字,还要去掉最后的 html 换行符。

我认为您正在查看 RPC:Completed 上的配置文件/跟踪结果。找到匹配的(通过 SPID)RPC:正在启动,这应该无需任何编辑即可执行。

【讨论】:

我必须将 RPC:Starting 选项添加到跟踪事件选择中才能找到它,但是一旦我这样做了,我就可以在未修改的 MSSMS 中执行查询

以上是关于sql: sp_cursorexecute 执行错误的主要内容,如果未能解决你的问题,请参考以下文章

sql无效字符 执行sql语句报错解决方案

在shell脚本执行sql语句为啥会报错

执行动态sql时产生的错误会被异常块捕获吗?

SQL报错注入小结

SQL | GET报错注入

线上SQL脚本执行错了出事之后互相甩锅怎么办?