Gostaria de adicionar informações de versão ao nosso BD - tudo o que será usado é para verificar se a versão do usuário de uma linha mudou desde que ele a leu. Estou pensando em adicionar uma coluna chamada _VERSION
às duas dúzias de tabelas em questão. Como parte de uma UPDATE
declaração em lote, eu teria algo como SET ..._VERSION=something_or_other
. Sou agnóstico sobre quais dados essa coluna contém.
Uma solução que vi é usar uma coluna datetime e então obter o horário de início da transação de sys.dm_tran_active_transactions, selecionando a linha para CURRENT_TRANSACTION_ID()
. Para nossas necessidades, a precisão de 1/300 será mais do que suficiente. Entendo que usar CURRENT_TIMESTAMP
não é tão útil nessa situação porque isso mudará conforme o lote prossegue.
Se isso for canônico, farei isso. É fácil de implementar.
Mas essa é a melhor maneira para usos realmente simples? Existe algum outro valor no sys.dm_tran...
que fornece o mesmo resultado, mas pode ser mais fácil de armazenar e WHERE do que um datetime?
OBSERVAÇÃO: sim, estou ciente das tabelas temporais e do rastreamento de alterações da MS e me disseram para não usá-los.