50分送给解决一个简单的存储过程的英雄

msnadair 2008-12-21 07:04:28
我下面的存储过程编译时报如下错误:
Server Message: Number 137, Severity 15
Server 'linux', Procedure 'insertdata', Line 12:
Must declare variable '@i'.


往各位大侠帮我修改一下,让它能正常跑起来。此存储过程的目的是:从表ADDRESS_GROUP取数据(NAME,GROUPID)插入到company表中。company表中有一自增索引列companyid,不允许重复。




create procedure insertdata
as
declare
@id numeric
@i numeric
@len numeric
begin
select @i =1
select @len =select count(1) from gdtest.dbo.ADDRESS_GROUP
while @i <=@len
insert into company(companyid,companyname,company_query_type,authflag,auth_by_ldap,remark1) select @id,NAME,1,0,0,GROUPID from ADDRESS_GROUP
select @i =@i +1
end
end

...全文
50 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
msnadair 2008-12-27
  • 打赏
  • 举报
回复
那个存储过程是错误的
Tigersong 2008-12-26
  • 打赏
  • 举报
回复
declare @id numeric ,
@i numeric ,
@len numeric
天鹅要蛤蟆吃 2008-12-24
  • 打赏
  • 举报
回复
我想那样写会出问题啊,可以用游标试一试。每一次循环插入一条,直到@i =@i + 1 = @len结束。
hobbylu 2008-12-21
  • 打赏
  • 举报
回复
create procedure insertdata
as
declare
@id numeric
declare @i numeric
declare @len numeric
begin
select @i =1
select @len =select count(1) from gdtest.dbo.ADDRESS_GROUP
while @i <=@len
insert into company(companyid,companyname,company_query_type,authflag,auth_by_ldap,remark1) select @id,NAME,1,0,0,GROUPID from ADDRESS_GROUP
select @i =@i +1
end
end

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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