2014-01-30 28 views
0

SQL插入多行我有一个变量@RowNumber基于可变

我想创建一个基于@RowNumber变量变量表@table

如果@RowNumber是6我想@table顶部呈现以下信息

MonthID Month 
1  Month1 
2  Month2 
3  Month3 
4  Month4 
5  Month5 
6  Month6 

任何帮助,将不胜感激....

+1

解决方案很可能取决于您正在使用的**具体数据库**系统; SQL只是查询语言,而不是数据库系统。请添加你正在使用的标签作为你的问题:'MySQL','DB2','Oracle','SQL Server','Postgres'或其他任何可能的...... –

+0

请详细说明.. –

回答

0

在SQL Server:

DECLARE @Table TABLE (MonthID int, Month nvarchar(20)) 
DECLARE @RowNumber int = 12 

DECLARE @Count int = 1 
WHILE @Count <= @RowNumber 
BEGIN 
    INSERT INTO @Table (MonthID, Month) VALUES (@Count, 'Month' + CAST(@Count AS nvarchar)) 
    SET @Count = @Count + 1 
END 

SELECT * FROM @Table 
+0

嗨Ruud - 完美的作品 - 感谢您的帮助 – gillers322

0

SQL Server中的一种表格方式T

declare @RowNumber int = 6 

;with T(MonthID, Month) as 
(
    select 1 as MonthID , 'month' + cast(1 as varchar(6)) 
     union all 
    select MonthID + 1, 'month' + cast(MonthID as varchar(6)) 
     from T 
     where MonthID < @RowNumber 
) 

select * from T 
+0

嗨亚历克斯,绝对完美 - 非常感谢 – gillers322

0
declare @rownum int 
declare @monthid int 
declare @date datetime 

/* rownum initialized in your code*/ 
select @rownum = 6 

select @monthid = 1 
select @date = '20140101' 

declare @table table ( 
MonthID int null, 
MonthName varchar (10) null 
); 
while (@rownum > 0) 
begin 
insert into @table values (@monthid , datename(month,dateadd(month,@monthid-1,@date))) 
select @monthid = @monthid + 1 
select @rownum = @rownum - 1 
end