0

SQL Server 2008 で単一の選択ステートメントから複数のデータを挿入しようとしています。

(1) Select ステートメントの場合:

CREATE PROCEDURE getAllDaysBetweenTwoDate
(
@StartDate DATETIME,    
@EndDate DATETIME
)
AS
BEGIN

DECLARE @TOTALCount INT
SET @StartDate = DATEADD(DAY,-1,@StartDate)
Select  @TOTALCount= DATEDIFF(DD,@StartDate,@EndDate);

WITH d AS 
        (
          SELECT top (@TOTALCount) AllDays = DATEADD(DAY, ROW_NUMBER() 
            OVER (ORDER BY object_id), REPLACE(@StartDate,'-',''))
          FROM sys.all_objects
        )
    SELECT AllDays From d
RETURN 
END
GO

-- このコードを使用すると、StartDate と EndDate の 2 つの日付の間の日付を取得できます。

(2) 日付を別のテーブルに挿入しようとしています。

例えば

@StartDate = 2013-11-05
@EndDate = 2013-11-08

結果はffになります。

2013-11-05,
2013-11-06,
2013-11-07,
2013-11-08

これらの日付を別のテーブルに挿入したいと考えています。

どうやってやるの?私を助けてください。

ありがとう!

4

2 に答える 2

3

試す:

INSERT INTO MyTable 
EXECUTE getAllDaysBetweenTwoDate @StartDate = '2013-11-05', @EndDate = '2013-11-08';

編集:(「1」定数で挿入)

DECLARE @t table ([date] datetime)

INSERT INTO @t ([date])
EXECUTE getAllDaysBetweenTwoDate @StartDate = '2013-11-05', @EndDate = '2013-11-08';

INSERT INTO MyTable (DateColumn, Number1Column)
SELECT [date], '1' FROM @t 
于 2013-11-08T15:13:22.127 に答える