Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 使用while循环以日期增量插入_Sql Server 2008 - Fatal编程技术网

Sql server 2008 使用while循环以日期增量插入

Sql server 2008 使用while循环以日期增量插入,sql-server-2008,Sql Server 2008,我在一个表中有3列Index\u tbldate,品牌和索引。品牌A的日期从2012年1月26日开始,品牌B的日期从2013年2月18日开始。现在,对于索引为“0”的“A”品牌,我必须在该表中插入2012年1月1日开始日期之前的所有日期的行。我如何一次性完成此操作。共有27个品牌,并且为每个日期编写一个插入这很麻烦 Declare @min_date set @min_date=select min(dt) from temp_tm_data_final_4 where brand=

我在一个表中有3列
Index\u tbl
date
品牌
索引
。品牌A的日期从2012年1月26日开始,品牌B的日期从2013年2月18日开始。现在,对于索引为“0”的“A”品牌,我必须在该表中插入2012年1月1日开始日期之前的所有日期的行。我如何一次性完成此操作。共有27个品牌,并且为每个日期编写一个
插入
这很麻烦

 Declare @min_date 
    set @min_date=select min(dt) from temp_tm_data_final_4 where brand='A'

            while (min_date > 2012-01-01 00:00:00.000)
                BEGIN
                Insert into temp_tm_data_final_4 
                (date,brand,Index)
                values
                (dateadd(day,-1,@min_date),'A',0)
                END

以下查询将满足您的要求:

Declare @min_date 
        set @min_date=select min(dt) from temp_tm_data_final_4 where brand='A'


;WITH CTE AS
(
    SELECT DATEADD(day,-1,@min_date) Dates

    UNION  ALL 

    SELECT DATEADD(day,-1,Dates)
    FROM CTE
    WHERE DATEADD(day,-1,Dates) > '2012-01-01 00:00:00.000'
)
INSERT into temp_tm_data_final_4 (date,brand,Index)
SELECT Dates,'A',0
FROM CTE