Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
abrashka
Member

Откуда:
Сообщений: 521
День добрый!

Поиском пользовался, судя по всемu нельзя без ковыряния лога или триггера, но начальник клянется, что начиная с SQL 2005 в системных таблицах где-то фигурирует время последнего изменения данных в таблице.
Не важно в каком столбце было изменение(или удаление, или добавление), нужно только время.

Помогите плз, есть ли такое в SQL 2005/2008?
8 авг 11, 19:55    [11088098]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Система отслеживания измененных данных (CDC)?
8 авг 11, 20:08    [11088126]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
abrashka
Member

Откуда:
Сообщений: 521
iap,

Спасибо!
Видимо это одно из решений, но оно требует предварительной подготовки. Начальник имел в виду не этот вариант.
8 авг 11, 20:13    [11088144]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Без предварительной подготовки - никак.
8 авг 11, 20:13    [11088145]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
abrashka
но начальник клянется, что начиная с SQL 2005 в системных таблицах где-то фигурирует время последнего изменения данных в таблице.


Начальник наверное работал в команде разработчиков SQL Server, раз так уверен в том чего нет.
9 авг 11, 02:35    [11088949]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
abrashka
Member

Откуда:
Сообщений: 521
кажется, что начальник таки занимался, пока мы все курили...
USE AdventureWorks
GO
CREATE TABLE Test
(ID INT,
COL VARCHAR(100))
GO
INSERT INTO Test
SELECT 1,'First'
UNION ALL
SELECT 2,'Second'
GO
;

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'AdventureWorks')
AND OBJECT_ID=OBJECT_ID('test')
6 сен 11, 17:54    [11236781]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Внезапно.
6 сен 11, 17:56    [11236816]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
iljy
Member

Откуда:
Сообщений: 8711
abrashka
кажется, что начальник таки занимался, пока мы все курили...

Таки нет
use tempdb
CREATE TABLE Test
(ID INT,
COL VARCHAR(100))
GO
INSERT INTO Test
SELECT 1,'First'
UNION ALL
SELECT 2,'Second'
GO
;

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'tempdb')
AND OBJECT_ID=OBJECT_ID('test')

update Test set COL = COL where 1=0

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'tempdb')
AND OBJECT_ID=OBJECT_ID('test')
drop table Test
6 сен 11, 18:16    [11237006]     Ответить | Цитировать Сообщить модератору
 Re: как узнать время последнего изменения данных в таблице, без использования триггера?  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
11227640
6 сен 11, 18:26    [11237073]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить