ghost_55 2015-01-04 03:31 采纳率: 0%
浏览 1800

存储过程在本地运行通过,服务器运行报错

本机数据库版本为2012,执行存储过程成功,放到服务器执行(版本为2005),运行报错,代码入下:
ALTER proc [dbo].[proc_DingDan]
@newNumber varchar(18) output
as

declare @maxNumber varchar(18)
select @maxNumber=MAX(orderno) from [dbo].[Orders] where SUBSTRING(OrderNo,0,9) = convert(varchar(18),getdate(),112)
declare @time varchar(20)=SUBSTRING(replace(replace(replace(convert(varchar,getdate(),120),'-',''),' ',''),':',''),0,13)
if(@maxNumber is null)
begin
set @newNumber=@time+'000001'

end

else
begin
declare @haoma varchar(18)
set @haoma= right('00000'+Convert(varchar(6),right(@maxNumber,6)+1),6)
set @newNumber=@time+@haoma
end
print @newNumber

放服务器运行报错,错误代码如下:
消息 139,级别 15,状态 1,过程 proc_DingDan,第 0 行

不能向局部变量赋予默认值。
消息 137,级别 15,状态 2,过程 proc_DingDan,第 9 行
必须声明标量变量 "@time"。
消息 137,级别 15,状态 2,过程 proc_DingDan,第 16 行
必须声明标量变量 "@time"。
求高手相助http://ask.csdn.net/my#

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-01-04 03:50
    关注

    变量在定义中初始化, 是 2008才开始的

    你可以在循环前,使用 SET 或者SELECT 语句初始化一下就行, 不要在定义中初始化

    评论

报告相同问题?

悬赏问题

  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名