仍然是变量的使用问题?

hljhl 2003-11-06 09:53:47
真是盼望sql有类似“宏代换”函数
我有这样一个问题,有60多个代码表,表名在_dmbnote表中的dmbname字段中,我现在要修改每个代码表中的hz字段类型为varchar,长度为每个代码表中hz字段中的最大长度,
begin
set @sql='alter table '+@bm+' alter column hz varchar(select max(len(hz)) from ' +@bm+')'
exec(@sql)
fetch cur_dmb into @bm
end
不知怎么写?请指教!

...全文
25 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hljhl 2003-11-06
  • 打赏
  • 举报
回复

改了后,运行后有以下提示“将 nvarchar 值 'alter table ' 转换为数据类型为 int 的列时发生语法错误。”大力请指教。
pengdali 2003-11-06
  • 打赏
  • 举报
回复
declare cursor1 cursor for select dmbname from dmbnote
declare @i varchar(1000),@j nvarchar(1000),@t int
open cursor1
fetch cursor1 into @i
while @@fetch_status=0
begin
set @j=N'select @t=max(len(hz)) from '+@i
exec sp_executesql @j,N'@t int output',@t output
set @j=N'alter table '+@i+' alter column hz varchar('+cast(@t as varchar(10))+')'
exec(@j)
fetch cursor1 into @i
end
close cursor1
deallocate cursor1

34,668

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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