有高手知道动态创建表变量的不?就是列是动态变化的。
set @sql='declare @Temp table('+@ColumnNameChar+')'
--print @sql
--exec sp_executesql @sql, N'@Temp table out',@Temp out
exec (@sql)这里不报错,但是底下利用@temp的时候说没声明,能这么声明吗?
set @sql='declare @Temp table('+@ColumnNameChar+')'
--print @sql
--exec sp_executesql @sql, N'@Temp table out',@Temp out
exec (@sql)这里不报错,但是底下利用@temp的时候说没声明,能这么声明吗?
col
----------
test(所影响的行数为 1 行)
**/
正有此意,哈哈
declare @i as int
set @i = 0
set @sql = 'create table tb ('
while @i <= 10
begin
set @sql = @sql +
'[' + convert(varchar(10),dateadd(day , @i , getdate()),120) + '] int ,'
set @i = @i + 1
end
set @sql = left(@sql , len(@sql) - 1) + ') select * from tb'
exec(@sql)/*
2009-04-03 2009-04-04 2009-04-05 2009-04-06 2009-04-07 2009-04-08 2009-04-09 2009-04-10 2009-04-11 2009-04-12 2009-04-13
----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------(0 行受影响)
*/drop table tb
1、@tb不能在exec外、存储过程续存
2、没有索引
3、不能select ... into @tb from ...(表结构无须事先定义)