这个存储过程有什么错???
create procedure dbo.pro_xxcx_fieldinfo
@strtablename varchar(60)
as
begin
begin tran tran_update_field
declare @vfield_name varchar(60)
declare @vfield_type varchar(60)
declare @vfield_type_old varchar(60)
declare @vcon_name varchar(120)
declare @vfield_chname varchar(60)
declare v_cursor cursor
for select COLUMNNAME, COLUMNTYPE, NOTE
from TD_XXCJ_TABLEINFO
where TABLENAME=upper(@strtablename)
for read only
open v_cursor
fetch v_cursor into @vfield_name, @vfield_type, @vfield_chname
while @@sqlstatus <> 2
begin
select @vcon_name = @strtablename+'.'+@vfield_name
if
(
select count(1)
from TD_XXCX_FIELDINFO
where FIELD_NAME = upper(@vcon_name)
) > 0
begin
select @vfield_type_old =
(
select FIELD_TYPE
from TD_XXCX_FIELDINFO
where FIELD_NAME = upper(@vcon_name)
)
end
else
begin
@vfield_type_old = ' '
print 'no data found, countinue...'
end
if @vfield_type_old = ' '
begin
insert into TD_XXCZ_FIELDINFO
(FIELD_ENNAME, FIELD_CHNAME, FIELD_TYPE)
values(@vcon_name, @vfield_chname, @vfield_type)
end
else
begin
update TD_XXCX_FIELDINFO
set FIELD_CHNAME = @vfield_chname, field_type = @vfield_type
where FIELD_ENNAME = upper(@vcon_name)
end
fetch v_cursor into @vfield_name, @vfield_type, @vfield_chname
end
close v_cursor
commit tran tran_update_field
end
问题点数:0、回复次数:4Top
1 楼cloudfog(阿荣)回复于 2003-08-01 18:08:09 得分 0
我已经改对啦,多谢各位!!!Top
2 楼zheang(天心虫)回复于 2003-08-01 18:18:41 得分 0
那你该告诉我们你怎么改的,大家也看一下:)Top
3 楼tchatcha(沧桑,孤独,浪漫,但执着!)回复于 2003-08-04 09:26:43 得分 0
upTop
4 楼cloudfog(阿荣)回复于 2003-08-04 15:13:51 得分 0
if/else 后面根本不用begin/end;
变量赋值一定要用Select @varname = '';
最后一个end用不着,要去掉。
Top




