我是斗罗 2022-05-24 12:01 采纳率: 0%
浏览 299

Navicat Premium运行sql存储过程提示42000 - [SQL Server]必须声明标量变量 "@csheetno",在sql能运行呢

ALTER procedure [dbo].[GetMaxSheetNo]
@sqlstr nvarchar(1000),@PreFix varchar(2),@Length int, @csheetno varchar(10) OUTPUT
as
begin
declare @EXECSQL nvarchar(300),@sheetno varchar(10)
SET @EXECSQL='SELECT @maxsheetno=('+@sqlstr+')'
exec sp_executesql @EXECSQL,N'@maxsheetno varchar(10) output', @sheetno OUTPUT
if @sheetno is null
BEGIN
set @sheetno=@PreFix+ right('000000000000001',@Length)
END
else
begin
set @sheetno=@PreFix+right('000000000000000'+convert(varchar(20),convert(int,right(@sheetno,@Length))+1),@Length)
end
set @csheetno=@sheetno
end

  • 写回答

1条回答 默认 最新

  • Null_Reference 2022-05-24 13:46
    关注

    set @csheetno=@sheetno

    这句改成

    return @sheetno

    评论

报告相同问题?

问题事件

  • 创建了问题 5月24日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音