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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)