1

Start Dateテキストボックスに基づいてSQL Server データベースに複数の行を挿入する必要がありますEnd Date

EGしたがって、次の日付の個々の行を挿入する必要がありますtbStartDate.Text = "25/12/2012"tbEndDate.Text = "29/12/2012"

25/12/2012
26/12/2012
27/12/2012
28/12/2012
29/12/2012

これを実現するために必要な T-SQL について教えてください。

4

2 に答える 2

2

いつものように、いくつかの方法があります。それらのいくつかを次に示します。

  1. アプリに、日をループして1日に1つのレコードを挿入するコードを記述できます。(一般的に最悪の設計)

  2. SQLスクリプトを呼び出して、データベース内ですべてを実行できます。

  3. SQLスクリプトをストアドプロシージャでラップし、開始日と終了日を渡して、ストアドプロシージャにそれを実行させることができます。

  4. 既存の集計テーブルに相互結合し、それを使用してレコードを生成できます。

あなたが提供できる場合

-使用しているSQLServerのバージョン

-テーブルはどのように見えるか

-C#またはVBのどちらを使用しているか

そうすれば、データベースに日付を渡すのが難しくなる可能性があるため、さらに支援することができます。それらを検証しないと、特に困難になる可能性があります。

とにかくここにあなたのためのオプション3があります。

CREATE PROC dbo.t_test 
@StartDate DATETIME,
@EndDate DATETIME
AS

WHILE @StartDate <= @EndDate
BEGIN
    INSERT INTO YourTable(YourDateField) VALUES (@StartDate)
    SET @StartDate = DATEADD(d,1,@StartDate)
END

次に、ASP.Netからこのストアドプロシージャ(dbo.t_testと呼ばれる)を呼び出し、2つの日付パラメーターを日付として渡す必要があります。

于 2012-11-04T22:55:58.630 に答える
2
Declare @Startdate datetime
Select @Startdate='20121025'
While @Startdate<='20121029'
    begin
      if not exists(select * from dummy where DATE=@Startdate)
        insert into dummy (date) values (@Startdate)
        set @Startdate=@Startdate + 1
    end;
于 2012-11-04T22:38:47.223 に答える