-2

_del削除されたすべてのデータを追跡する一連のテーブル (テーブル) があります。今日以降のタイムスタンプを持つレコードをこれらのテーブルから一時テーブルにコピーしたいと考えています。その後、_delテーブルを切り捨てたいと思います。誰かが上記のロジックのストアド プロシージャを手伝ってくれませんか。

4

1 に答える 1

0

どのデータベースを使用していますか? 単一のテーブルから、特定の列の日付が現在より後の別のテーブルにコピーするには、次のように使用できます。

SQLサーバー:

INSERT INTO MyTempTable1 (Column1, Column2, Colu...)
    SELECT Column1, Column2, Colu...
      FROM _delTable1
     WHERE MyDateColumn > GetDate();

TRUNCATE TABLE _delTable1;

MySQL:

INSERT INTO MyTempTable1 (Column1, Column2, Colu...)
    SELECT Column1, Column2, Colu...
      FROM _delTable1
     WHERE MyDateColumn > CURRENT_TIMESTAMP();

TRUNCATE TABLE _delTable1;

_del で始まる各テーブルのクエリを動的に作成する場合は、テーブルをループしてクエリを作成して実行できますが、使用しているデータベースやバージョンによって異なります。

別のオプション (何をしたいかによって異なります) は、今日よりも古いデータ (現在または今日の始まり) を削除することです。

今日を始めるには、次のようにします。

SELECT DATEADD(DAY, DATEDIFF(DAY, -1, GETDATE()), -1)

これを使用する場合は、GetDate() または CURRENT_TIMESTAMP() を (括弧内に) 置き換えます。

于 2012-06-25T19:21:28.273 に答える