it-swarm.com.de

Finden Sie, dass der letzte Zeitplan aktualisiert wurde

Ich möchte die letzte Zeittabelle abrufen (Einfügen, Löschen, Aktualisieren).

Ich habe diese Abfrage versucht.

SELECT last_user_update
FROM sys.dm_db_index_usage_stats
WHERE object_id=object_id('T')

die Daten dort werden jedoch nicht bei Neustarts der Dienste beibehalten.

Ich möchte die Statistiken beibehalten, auch wenn der Dienst neu startet. Wie kann ich das erreichen?

18
Ramesh Durai

Wenn Sie über das letzte Mal sprechen, an dem die Tabelle hinsichtlich ihrer strukturierten Änderungen aktualisiert wurde (neue Spalte hinzugefügt, Spalte geändert usw.), verwenden Sie diese Abfrage:

SELECT name, [modify_date] FROM sys.tables

Wenn es sich um DML-Vorgänge handelt (Einfügen, Aktualisieren, Löschen), müssen Sie entweder das beibehalten, was Ihnen der DMV regelmäßig gibt, oder Sie müssen Auslöser für alle Tabellen erstellen, um das Datum der letzten Änderung zu erfassen. oder check out Features wie Change Data Capture in SQL Server 2008 und neuer.

41
marc_s

Wenn Sie Datenaktualisierungen anzeigen möchten, können Sie diese Technik mit den erforderlichen Berechtigungen verwenden:

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'DATABASE')
AND OBJECT_ID=OBJECT_ID('TABLE')
6
MERT DOĞAN

Um Überwachungsdaten in Bezug auf Datenänderungen beizubehalten, müssen Sie einen DML-Auslöser für jede interessierte Tabelle implementieren. Sie müssen eine Überwachungstabelle erstellen und Ihren Triggern Code hinzufügen, um in diese Tabelle zu schreiben.

Weitere Informationen zur Implementierung von DML-Triggern finden Sie in diesem MDSN-Artikel http://msdn.Microsoft.com/en-us/library/ms191524%28v=sql.105%29.aspx

2
Julian Joseph
SELECT so.name,so.modify_date

FROM sys.objects as so

INNER JOIN INFORMATION_SCHEMA.TABLES as ist

ON ist.TABLE_NAME=so.name where ist.TABLE_TYPE='BASE TABLE' AND 

TABLE_CATALOG='DbName' order by so.modify_date desc;

dies ist eine Hilfe, um die Tabelle mit dem Tabellennamen zu ändern

Warum nicht einfach Folgendes ausführen: Keine besonderen Berechtigungen erforderlich

SELECT
    name, 
    object_id, 
    create_date, 
    modify_date
FROM
    sys.tables 
WHERE 
    name like '%yourTablePattern%'
ORDER BY
    modify_date
0
CRCarpenter

Suche nach dem letzten Zeitpunkt der Aktualisierung in einer Tabelle 

`SELECT
tbl.name
,ius.last_user_update
,ius.user_updates
,ius.last_user_seek
,ius.last_user_scan
,ius.last_user_lookup
,ius.user_seeks
,ius.user_scans
,ius.user_lookups
FROM
sys.dm_db_index_usage_stats ius INNER JOIN
sys.tables tbl ON (tbl.OBJECT_ID = ius.OBJECT_ID)
WHERE ius.database_id = DB_ID()
`

http://www.sqlserver-dba.com/2012/10/sql-server-find-last-time-of-update-on-a-table.html

0
Ayaat Shifa