帮我看看这个存储过程错在哪里,急啊!成功后立马给分!

wuluhua2003 2006-02-24 03:36:23
一下为我的存储过程代码:
CREATE PROCEDURE InsertYpyjTjxxb
@areacode char(6), -- 地区编码
@gyjs float, -- 供应件数
@gypz float, -- 供应品种
@jxqzls bigint, -- 矫形器装配总例数
@jzzls bigint, -- 普及型假肢装配总例数
@gyfwzzs bigint, -- 供应服务站累积建站数
@gyfwzxjs bigint, -- 供应服务站本年新建数
@jgzs bigint, -- 开展服务的残联机构累计数
@jgxkzs bigint, --开展服务的残联机构本年新开展数
@ypyjgyzs bigint, -- 实施补贴的用品用具供应件数
@ypyjbted float -- 实施补贴的用品用具补贴额度
AS


declare @tjgyjs float -- 供应件数
declare @tjgypz float -- 供应品种
declare @tjjxqzls bigint -- 矫形器装配总例数
declare @tjjzzls bigint -- 普及型假肢装配总例数
declare @tjgyfwzzs bigint -- 供应服务站累积建站数
declare @tjgyfwzxjs bigint -- 供应服务站本年新建数
declare @tjjgzs bigint -- 开展服务的残联机构累计数
declare @tjjgxkzs bigint --开展服务的残联机构本年新开展数
declare @tjypyjgyzs bigint -- 实施补贴的用品用具供应件数
declare @tjypyjbted float -- 实施补贴的用品用具补贴额度
declare @count int -- 判断是插入还是修改


begin tran
go
select @count=count(*) from ypyjgyzdjb where areacode=@areacode
go
if @count>0
begin
update ypyjgyzdjb set gyjs=@gyjs,gypz=@gypz,jxqzls=@jxqzls,jzzls=@jzzls,gyfwzzs=@gyfwzzs,gyfwzxjs=@gyfwzxjs,jgzs=@jgzs,jgxkzs=@jgxkzs,ypyjgyzs=@ypyjgyzs,ypyjbted=@ypyjbted where areacode=@areacode
end
else
begin
insert into ypyjgyzdjb (gyjs,gypz,jxqzls,jzzls,gyfwzzs,gyfwzxjs,jgzs,jgxkzs,ypyjgyzs,ypyjbted,areacode) VALUES(@gyjs,@gypz,@jxqzls,@jzzls,@gyfwzzs,@gyfwzxjs,@jgzs,@jgxkzs,@ypyjgyzs,@ypyjbted,@areacode)
end
go
select @tjgyjs=sum(gyjs),@tjgypz=sum(gypz),@tjjxqzls=sum(jxqzls), @tjjzzls=sum(jzzls),@tjgyfwzzs=sum(gyfwzzs),@tjgyfwzxjs=sum(gyfwzxjs),@tjjgzs=sum(jgzs),@tjjgxkzs=sum(jgxkzs),@tjypyjgyzs=sum(ypyjgyzs),@tjypyjbted=sum(ypyjbted) from ypyjgyzdjb
where substring(areacode,1,4)= @areacode
go
select @count=count(*) from ypyjgyztjb where areacode=substring(@areacode,1,4)+'00'
if @count>0
begin
update ypyjgyztjb set gyjs=@tjgyjs,gypz=@tjgypz,jxqzls=@tjjxqzls,jzzls=@tjjzzls,gyfwzzs=@tjgyfwzzs,gyfwzxjs=@tjgyfwzxjs,jgzs=@tjjgzs,jgxkzs=@tjjgxkzs,ypyjgyzs=@tjypyjgyzs,ypyjbted=@tjypyjbted where areacode=substring(@areacode,1,4)+'00'
end
else
begin
insert into ypyjgyztjb (gyjs,gypz,jxqzls,jzzls,gyfwzzs,gyfwzxjs,jgzs,jgxkzs,ypyjgyzs,ypyjbted,areacode) VALUES(@tjgyjs,@tjgypz,@tjjxqzls,@tjjzzls,@tjgyfwzzs,@tjgyfwzxjs,@tjjgzs,@tjjgxkzs,@tjypyjgyzs,@tjypyjbted,substring(@areacode,1,4)+'00')
end
go
commit
GO
以下为语法检查时的错误:
服务器: 消息 137,级别 15,状态 1,行 1
必须声明变量 '@count'。
服务器: 消息 137,级别 15,状态 2,行 1
必须声明变量 '@count'。
服务器: 消息 137,级别 15,状态 1,行 3
必须声明变量 '@gyjs'。
服务器: 消息 137,级别 15,状态 1,行 7
必须声明变量 '@gyjs'。
服务器: 消息 137,级别 15,状态 1,行 1
必须声明变量 '@tjgyjs'。
服务器: 消息 137,级别 15,状态 1,行 1
必须声明变量 '@count'。
服务器: 消息 137,级别 15,状态 1,行 2
必须声明变量 '@count'。
服务器: 消息 137,级别 15,状态 1,行 4
必须声明变量 '@tjgyjs'。
服务器: 消息 137,级别 15,状态 1,行 8
必须声明变量 '@tjgyjs'。

先谢了啊
...全文
121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuluhua2003 2006-02-24
  • 打赏
  • 举报
回复
成功了,谢谢两位
子陌红尘 2006-02-24
  • 打赏
  • 举报
回复
把存储过程内部所有的GO去掉,只保留结束位置那一个。
lsqkeke 2006-02-24
  • 打赏
  • 举报
回复
CREATE PROCEDURE InsertYpyjTjxxb
@areacode char(6), -- 地区编码
@gyjs float, -- 供应件数
@gypz float, -- 供应品种
@jxqzls bigint, -- 矫形器装配总例数
@jzzls bigint, -- 普及型假肢装配总例数
@gyfwzzs bigint, -- 供应服务站累积建站数
@gyfwzxjs bigint, -- 供应服务站本年新建数
@jgzs bigint, -- 开展服务的残联机构累计数
@jgxkzs bigint, --开展服务的残联机构本年新开展数
@ypyjgyzs bigint, -- 实施补贴的用品用具供应件数
@ypyjbted float -- 实施补贴的用品用具补贴额度
AS


declare @tjgyjs float -- 供应件数
declare @tjgypz float -- 供应品种
declare @tjjxqzls bigint -- 矫形器装配总例数
declare @tjjzzls bigint -- 普及型假肢装配总例数
declare @tjgyfwzzs bigint -- 供应服务站累积建站数
declare @tjgyfwzxjs bigint -- 供应服务站本年新建数
declare @tjjgzs bigint -- 开展服务的残联机构累计数
declare @tjjgxkzs bigint --开展服务的残联机构本年新开展数
declare @tjypyjgyzs bigint -- 实施补贴的用品用具供应件数
declare @tjypyjbted float -- 实施补贴的用品用具补贴额度
declare @count int -- 判断是插入还是修改


begin tran

select @count=count(*) from ypyjgyzdjb where areacode=@areacode

if @count>0
begin
update ypyjgyzdjb set gyjs=@gyjs,gypz=@gypz,jxqzls=@jxqzls,jzzls=@jzzls,gyfwzzs=@gyfwzzs,gyfwzxjs=@gyfwzxjs,jgzs=@jgzs,jgxkzs=@jgxkzs,ypyjgyzs=@ypyjgyzs,ypyjbted=@ypyjbted where areacode=@areacode
end
else
begin
insert into ypyjgyzdjb (gyjs,gypz,jxqzls,jzzls,gyfwzzs,gyfwzxjs,jgzs,jgxkzs,ypyjgyzs,ypyjbted,areacode) VALUES(@gyjs,@gypz,@jxqzls,@jzzls,@gyfwzzs,@gyfwzxjs,@jgzs,@jgxkzs,@ypyjgyzs,@ypyjbted,@areacode)
end

select @tjgyjs=sum(gyjs),@tjgypz=sum(gypz),@tjjxqzls=sum(jxqzls), @tjjzzls=sum(jzzls),@tjgyfwzzs=sum(gyfwzzs),@tjgyfwzxjs=sum(gyfwzxjs),@tjjgzs=sum(jgzs),@tjjgxkzs=sum(jgxkzs),@tjypyjgyzs=sum(ypyjgyzs),@tjypyjbted=sum(ypyjbted) from ypyjgyzdjb
where substring(areacode,1,4)= @areacode

select @count=count(*) from ypyjgyztjb where areacode=substring(@areacode,1,4)+'00'
if @count>0
begin
update ypyjgyztjb set gyjs=@tjgyjs,gypz=@tjgypz,jxqzls=@tjjxqzls,jzzls=@tjjzzls,gyfwzzs=@tjgyfwzzs,gyfwzxjs=@tjgyfwzxjs,jgzs=@tjjgzs,jgxkzs=@tjjgxkzs,ypyjgyzs=@tjypyjgyzs,ypyjbted=@tjypyjbted where areacode=substring(@areacode,1,4)+'00'
end
else
begin
insert into ypyjgyztjb (gyjs,gypz,jxqzls,jzzls,gyfwzzs,gyfwzxjs,jgzs,jgxkzs,ypyjgyzs,ypyjbted,areacode) VALUES(@tjgyjs,@tjgypz,@tjjxqzls,@tjjzzls,@tjgyfwzzs,@tjgyfwzxjs,@tjjgzs,@tjjgxkzs,@tjypyjgyzs,@tjypyjbted,substring(@areacode,1,4)+'00')
end

commit tran
lsqkeke 2006-02-24
  • 打赏
  • 举报
回复
局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
lsqkeke 2006-02-24
  • 打赏
  • 举报
回复
把那些 go 去掉

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧