如果要生成的臨時表中有個連續的數字列,或者連續的日期列,如下所示:
2012-1-1
2012-1-2
2012-1-3
... ...
可以這樣寫:
declare @begin datetime,@end datetime
set @begin='2012-1-1'
set @end='2012-1-5'
declare @days int
set @days=DATEDIFF(dd,@begin,@end)
select DATEADD(dd,number,@begin)
from master.dbo.spt_values
where type='p' AND number<=@days
上面的語句中,@begin與@end可以認為是多外面傳來的兩個參數,我們要求這兩個日期之間的日期序列。
當然,在看上面的代碼之前最好先回顧一下master.dbo.spt_values表的數據。
select * from master.dbo.spt_values
我們使用了其中的type與number兩列。