SQL 存储过程会的说下哦,简单查询
表 tab
字段
id a b
1 2 3
2 4 5
执行存储过程
exec xiaohao '3'
得到结果 是 (3 只是个参数 输入 数字多少 就增加多少列)。
id a b a1 a2 a3
1 2 3
2 4 5
谁知道怎么写哦,在存储过程里面怎么给 表 增加列。
SQL、存储过程、SQL增加列
[解决办法]
这个需要动态拼个SQL语句。循环串个字符串。
只说思路!
[解决办法]
create proc p_test(@column int)
as
begin
declare @sql nvarchar(max),@num int
set @num=1
set @sql='declare @t table(id int,a int,b int'
while @num<=@column begin
set @sql=@sql+',a'+convert(nvarchar(10),@num)+' int'
set @num=@num+1
end
set @sql=@sql+')'
set @sql=@sql+' insert into @t(id,a,b) select id,a,b from tab '
set @sql=@sql+' select * from @t'
exec(@sql)
end
create proc xiaohao
@n varchar(10)
as
begin
declare @s varchar(255)
declare @i int
set @i=1
set @s='select id,a,b'
while @i<=cast(@n as int)
begin
set @s=@s+','+char(39)+char(39)+' as a'+cast(@i as varchar(5))
set @i=@i+1
end
set @s=@s+' from tab'
exec (@s)
end