Мне нужно знать, когда данные в таблице были в последний раз модифицированы (данные вставлены, созданы, удалены). Общий ответ заключается в извлечении данных из sys.dm_db_index_usage_stats, но у меня нет доступа к этой таблице, и, насколько я понимаю, доступ к этому разрешению на уровне сервера, и поскольку это находится на корпоративном общем сервере, шансы отдела ИТ, предоставляющего мне доступ, там, где свиней летают.SQL Server - получить последнее обновленное время для таблицы
Есть ли способ получить эту информацию, которая не требует значительно повышенных привилегий?
Update # 1
Некоторая дополнительная информация: То, что я делаю, кэширование содержимого этой таблицы локально, и нужно знать, когда, чтобы обновить свой локальный кэш. Это означает:
- мне не нужно фактический штамп время, просто любое значение, которое я могу сравнить с локально кэшированным значением, которое говорит мне, «все изменилось, обновите кэш»
- Если это значение изменяется слишком часто (например, получает сбрасываться каждый раз, когда они перезагружать сервер, который крайне редко) это нормально, это просто означает, что я могу сделать дополнительные обновления кэша, что я не на самом деле нужно сделать
Update # 2
Я должен был сделать это на ранней стадии, но я просто предположил, что смогу создавать таблицы по мере необходимости ... но я не уверен. Разрешение не предоставляется. Поэтому ни один из предложенных методов будут работать :-(
Вот моя новая мысль: я могу назвать
select checksum_agg(binary_checksum(*))
и получить контрольную сумму по всей удаленной таблице Затем, если изменения контрольной суммы, я знаю. таблица изменилась, и я могу обновить свой локальный кеш. Я видел problems with checksum, но использование HASHBYTES звучит, как будто было бы намного сложнее и намного медленнее.
Это работает, проблема в том, что при изменении контрольной суммы, Мне нужно перезагрузить весь кеш. В моей таблице столько строк, что возвращает контрольную сумму в строке, занимает недопустимо длинный тайм e, есть ли способ использовать предложение «OVER» и получить, может быть, 10 контрольных сумм, первую контрольную сумму для первой десятой строк и т. д.?
Я предполагаю, что ваша таблица не имеет ничего похожего на столбе «LastModified»? – Siyual
Правильно! И это таблица, созданная и поддерживаемая сторонним продуктом, поэтому, когда я могу изменить свою схему, чтобы добавить такой столбец, у меня нет способа изменить их код, чтобы поддерживать такой столбец. –
Хорошо, если вы счастливы изменить схему, вы можете добавить триггер для регистрации этих операций. –