【发布时间】:2016-08-17 17:26:37
【问题描述】:
declare @a int, @min date, @max date,@i int = 0, @columnname nvarchar(max),@b nvarchar(7) = 'aa'
select @min = min([Starting Date]) from [Quantities&Planning]
select @max = max([Finish Date]) from [Quantities&Planning]
set @a = DATEDIFF(DAY,@min,@max)
while @i < @a
begin
set @i = @i +1
set @b = str(@i)
set @columnname = 'alter table Test1 add ' + @b + ' decimal(18,2) NULL'
PRINT @columnname
exec (@columnname)
end
我的代码没有按预期工作。基本上我想创建命名为数字的新列,如 1,2,3,4,5... 这是错误代码:
警告:空值被聚合或其他 SET 操作消除。 警告:空值被聚合或其他 SET 操作消除。
消息 2812,第 16 级,状态 62,第 11 行
找不到存储过程'alter table Test1 add decimal(18,2) NULL'。消息 2812,第 16 级,状态 62,第 11 行
找不到存储过程'alter table Test1 add decimal(18,2) NULL'。消息 2812,第 16 级,状态 62,第 11 行
找不到存储过程'alter table Test1 add decimal(18,2) NULL'。
【问题讨论】:
标签: sql-server stored-procedures while-loop alter