如何使用变量循环给列命名

mobydick 2006-12-27 04:32:29
生成一个表,表的列数是根据用户输入的值自动添加的。
如何写这个SQL语句,如果直接使用变量,就会出现错误。

DECLARE @ColumnCount int
DECLARE @ColumnName varchar(10)
DECLARE @idx int
SET @ColumnCount = 10 --这个值可以变化,或者是用参数传入的
SET @idx = 1
WHILE @idx <= @ColumnCount
BEGIN
ALERT TABLE_A ADD 'C' + Convert(varchar(10),@idx) int --如何才能循环命名
@idx = @idx + 1
END
...全文
238 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
marco08 2006-12-27
  • 打赏
  • 举报
回复
SQL2000表最多是1024列
losedxyz 2006-12-27
  • 打赏
  • 举报
回复
when use variant you have to execute using exec()
marco08 2006-12-27
  • 打赏
  • 举报
回复
create table TABLE_A(ID int)
go
DECLARE @ColumnCount int
DECLARE @ColumnName varchar(10)
DECLARE @idx int
SET @ColumnCount = 10 --这个值可以变化,或者是用参数传入的
SET @idx = 1
WHILE @idx <= @ColumnCount
BEGIN
exec(' alter table TABLE_A ADD C' +@idx+' int') --如何才能循环命名
set @idx = @idx + 1
END
select * from TABLE_A

--result
ID C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------

(0 row(s) affected)
hyc_music1981 2006-12-27
  • 打赏
  • 举报
回复
UP
jacobsan 2006-12-27
  • 打赏
  • 举报
回复
exec('ALERT TABLE_A ADD ''C'' + Convert(varchar(10),'+@idx+') int ')

34,594

社区成员

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

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