私はMSServerで作業しています。過去30日間、挿入または変更されたデータを取得する特定のテーブルがあります。 私のテーブルには作成日を保存するものは含まれていません。マスターデータベースに何らかのトレースがあるか、何か助けになるものがあるのでしょうか?おかげさまで 過去30日間のレコードを取得するには?
答えて
行が追加されたときに表示がない場合は、適切な方法はありません。
私はこれを考えるaswerは可能なコメントです。あなたが望むなら、それを –
@JoeTarasに変換してくださいそれはかなり厳しいものですが、ちょっとです。私はアップフォートは必要ありません。私はそれがコメントか回答かどうか疑問を持ち、後者を使うことに決めました。 –
親愛なる、私はあなたがupvoteをしたいとは思わない。私は単に私の意見を述べた。 –
トランザクションログにアクセスし、タイムスタンプでソートされたすべての挿入トランザクションのリストを取得できます。最後の月の最後に挿入された行のタイムスタンプを見つけます。これらは最後に最後に挿入された行の末尾にあなたを(うまくいけば)導きます(より高いIDを持つすべての行があなたが探しているデータになります)。ステップ(多分あなたはあなたの状況に応じて、クエリにいくつかの調整をする必要がある)によって
ステップ:
は、トランザクションを取得します:
declare @TableName sysname
set @TableName = 'Table_1'
select [Current LSN],
[Operation],
[Transaction ID],
[Parent Transaction ID],
[Begin Time], [Transaction Name],
[Transaction SID]
from fn_dblog(null, null)
where [Operation] = 'LOP_BEGIN_XACT'
and [Transaction ID]
in
(
-- get transaction id's from your table (inserts)
SELECT [Transaction ID]
FROM fn_dblog(NULL, NULL)
WHERE
Operation = 'LOP_INSERT_ROWS'
and
AllocUnitName LIKE '%' + @TableName + '%'
)
order by [Begin Time] ASC
は、最後のトランザクションを取得します:
SELECT *
FROM fn_dblog(NULL, NULL)
WHERE Operation = 'LOP_INSERT_ROWS'
and [Transaction ID] = 'XXX' -- your transaction id
In行ログコンテンツ最後の月の最後に挿入された行のデータ値を検索します。今、あなただけの次のWebサイトによると「読める」データに挿入されたデータを変換する必要があります。
http://www.sqlshack.com/reading-sql-server-transaction-log/
今すぐ戻って「読める」のデータに挿入されたデータを変換した後、あなたは関連を見つけることができるはずです先月の最終行があなたのテーブルに挿入されました。そのIDより上位のすべての行が後で挿入されるため、探しているデータが挿入されます。
- 1. 日付(過去30日間)に基づいてレコードを取得
- 2. 過去30日間のレコードの抽出
- 3. 過去30日間
- 4. のiOS日付ピッカー - 過去30日間
- 5. GoogleアナリティクスV4 API:過去30日間のデータを取得
- 6. SQL/PHPは過去30日間の日々の記録を取得します
- 7. MySQLは過去30日間のデータを取得し、私はすべての過去30日間のグループにしたい日
- 8. MongoDBの過去30日間のデータ
- 9. Pouchdb-find過去30日間のドキュメント
- 10. 過去30日間のMYSQLオンラインメンバー
- 11. 過去7日間の最後のレコードを取得します
- 12. 過去30日間(datetimeオブジェクト)からすべての日付を取得
- 13. 過去30日間に作成されたオブジェクトを取得する
- 14. mysqlの過去30日間のカラムの合計を取得する
- 15. DynamoDBから過去30日間のデータを取得する方法
- 16. YouTube api - 過去30日間のチャンネル表示を取得する方法
- 17. MongoDB - 過去30日間に基づいてレコード数を設定します
- 18. オラクル:過去30営業日の平均件数を取得
- 19. 過去30日間のSQLクエリを減らす方法は?
- 20. Pythonは過去30日間のデータを返します
- 21. 過去1年間の結果を過去30日間まで0に制限する
- 22. SQL - 過去7日間の最後のレコードを取得します。
- 23. Mongo:過去30日間の1日当たりの別個のデータを取得するためのクエリ
- 24. 過去30秒間にドロップされたパケットの数を取得する方法
- 25. 今日から次または過去30日間のすべてのレコードを検索
- 26. GoogleScriptメールパーサー - 過去X日間のメールのみを取得する
- 27. 過去30日間に追加された製品のクエリを取得する方法(HSQLDB)
- 28. PostgreSQLデータベースから過去30日間のすべてのデータを取得するSQL
- 29. 過去6ヶ月間を月曜日に取得
- 30. Google Fit(Android)過去10日間のデータを取得
データベースをバックアップしていますか? –
いいえ、私はしませんが、なぜですか? – Imoum
30日前にバックアップした場合は、自動インクリメント列の最大値がどのようになったかを確認できました。次に、この値を現在のテーブルで使用して、必要なレコードに制限することができます。 –