看到问题,想来回答,不过进来一看,,,,吓死。 虽然能看明白,不过也太多了。兄弟我就把前面一段帮你说明一下吧,剩下的你自己就能看懂了。declare CUR_FYXM cursor for select CMC from tbzdbafy order by IBM定义一个CURSOR变量CUR_FYXM ,其值为select CMC from tbzdbafy order by IBM语句返回值。declare @CFYXM varchar(40) 定义一个varchar类型的变量@CFYXM,长度为40declare @ASQL varchar(1000) 定义一个 varchar类型的变量@ASQL,长度为1000(如果语句太长,1000可能不够)open CUR_FYXM 打开CUR_FYXM,这时CURSOR给出的是首地址FETCH NEXT FROM CUR_FYXM INTO @CFYXM 取出CUR_FYXM所指的第一个值,并附值给变量@CFYXM WHILE (@@fetch_status <> -1) 当取出值时begin 开始 set @ASQL='' 为变量@ASQL附值为‘’
set @ASQL='alter table ATJXX add '+@CFYXM+' money default(0.0)' 为变量@ASQL附值为'alter table ATJXX add '+@CFYXM+' money default(0.0)' (这句SQL就不用解释了吧?) exec(@ASQL) 执行@ASQL,就是执行上面那句SQLFETCH NEXT FROM CUR_FYXM INTO @CFYXM 取下一个值end 循环结束CLOSE CUR_FYXM 关闭CUR_FYXMDEALLOCATE CUR_FYXM 释放CUR_FYXMgo 告知SERVER此段完成剩下的你应该都能看懂了。
虽然能看明白,不过也太多了。兄弟我就把前面一段帮你说明一下吧,剩下的你自己就能看懂了。declare CUR_FYXM cursor for select CMC from tbzdbafy order by IBM定义一个CURSOR变量CUR_FYXM ,其值为select CMC from tbzdbafy order by IBM语句返回值。declare @CFYXM varchar(40)
定义一个varchar类型的变量@CFYXM,长度为40declare @ASQL varchar(1000)
定义一个 varchar类型的变量@ASQL,长度为1000(如果语句太长,1000可能不够)open CUR_FYXM
打开CUR_FYXM,这时CURSOR给出的是首地址FETCH NEXT FROM CUR_FYXM INTO @CFYXM
取出CUR_FYXM所指的第一个值,并附值给变量@CFYXM WHILE (@@fetch_status <> -1)
当取出值时begin
开始 set @ASQL=''
为变量@ASQL附值为‘’
set @ASQL='alter table ATJXX add '+@CFYXM+' money default(0.0)'
为变量@ASQL附值为'alter table ATJXX add '+@CFYXM+' money default(0.0)'
(这句SQL就不用解释了吧?) exec(@ASQL)
执行@ASQL,就是执行上面那句SQLFETCH NEXT FROM CUR_FYXM INTO @CFYXM
取下一个值end
循环结束CLOSE CUR_FYXM
关闭CUR_FYXMDEALLOCATE CUR_FYXM
释放CUR_FYXMgo
告知SERVER此段完成剩下的你应该都能看懂了。