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