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

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'。

先谢了啊
...全文
73 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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 去掉
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-02-24 03:36
社区公告
暂无公告