读书人

零下12度天寒地冻裸提跪求一语句

发布时间: 2013-12-05 22:27:44 作者: rapoo

零下12度冰天雪地裸提跪求一语句
表1:table1。
只有一个字段tablename。
如下:存储每个表的表名称。供200多个表名。

tablename
a1
b2
cc1
hh1
dd2
rr1

a1,b2,cc1,...所有表的结构都是一个字段 code。如下:
a1:b2:cc1:
codecodecode
101010223311442fssd
202020234411233das
30301030123aaf123aadd


问题来了,我要通过语句将table1里所有的表名中的code字段的第二位添加一个字符1.
也就是最终a1,b2,cc1,...变成如下:
a1b2cc1
codecodecode
110101021233114142fssd
210202021344111233das
3103010301123aaf1123aadd

跪求。。。。。
[解决办法]

引用:
Quote: 引用:

补充一下

declare @tablename varchar(50)
declare cur cursor for
select tablename from table1
open cur
fetch next from cur into @tablename
while @@FETCH_STATUS=0
begin
declare @sql varchar(max)
set @sql='
update '+@tablename+' set code=left(code,1)+''1''+right(LEN(code)-1)'

exec @sql
fetch next from cur into @tablename
end
close cur
deallocate cur



执行的时候提示 “找不到存储过程啊“
不可能啊,这不是存储过程,只是个游标啊。
[解决办法]
改成这样应该就行了:


declare @tablename varchar(50)
declare cur cursor for
select tablename from table1
open cur
fetch next from cur into @tablename
while @@FETCH_STATUS=0
begin
declare @sql varchar(max)
set @sql='
update '+@tablename+' set code=left(code,1)+''1''+right(LEN(code)-1)'

--加上括号
exec(@sql)
fetch next from cur into @tablename
end
close cur
deallocate cur

读书人网 >SQL Server

热点推荐