Você pode usar o
@@DBTS
função para obter a versão de linha atual de um determinado banco de dados no SQL Server. Mais especificamente, ele retorna o último usado versão de linha valor do banco de dados atual. Exemplo 1 – Uso básico
Para usar o
@@DBTS
função, basta selecioná-la dentro de um SELECT
demonstração. Assim:
SELECT @@DBTS;
Resultado:
+--------------------+ | (No column name) | |--------------------| | 0x0000000000000FA0 | +--------------------+
Exemplo 2 – Bancos de dados diferentes
Conforme mencionado, a versão de linha valor é específico para cada banco de dados. Portanto, você precisa ter certeza de que está no banco de dados correto.
Segue um exemplo para demonstrar:
USE Music; SELECT @@DBTS AS "Music rowversion"; Use WideWorldImportersDW; SELECT @@DBTS AS "WideWorldImportersDW rowversion";
Resultado:
Changed database context to 'Music'. +--------------------+ | Music rowversion | |--------------------| | 0x00000000000007D0 | +--------------------+ (1 row affected) Changed database context to 'WideWorldImportersDW'. +-----------------------------------+ | WideWorldImportersDW rowversion | |-----------------------------------| | 0x0000000000015F90 | +-----------------------------------+ (1 row affected)
Onde este valor é usado?
A versão de linha value é usado por colunas que têm uma rowversion ou carimbo de data e hora tipo de dados. Essas colunas são atualizadas automaticamente com um número exclusivo, com base no valor incrementado de rowversion , sempre que ocorrer uma inserção ou atualização.
Usando o exemplo acima, se eu inserir ou atualizar uma linha no
Music
banco de dados, e essa linha tem uma rowversion coluna, o valor dessa coluna provavelmente será definido como 0x00000000000007D1
(ou seja, 0x00000000000007D0
incrementado em 1). Nesta fase, se eu usar @@DBTS
contra esse banco de dados, ele retornaria 0x00000000000007D1
(porque essa é a última contagem de linhas usada valor). Se eu atualizar essa linha, sua rowversion coluna se tornará
0x00000000000007D2
. Isso é verdade, mesmo que a operação de atualização não tenha alterado nenhum dado. Desta vez, se eu executar @@DBTS
ele retornaria 0x00000000000007D2
. Para obter um exemplo que demonstra isso, consulte O que é “rowversion” no SQL Server.
O carimbo de data e hora tipo de dados é na verdade um sinônimo para rowversion , então o valor retornado por
@@DBTS
reflete a versão de linha atual valor se foi incrementado por uma rowversion coluna ou um carimbo de data e hora coluna. Observe também que carimbo de data e hora é um dos quatro tipos de dados preteridos que estão no modo de manutenção e podem ser removidos em uma versão futura do SQL Server. Portanto, você deve usar rowversion em vez de carimbo de data e hora em novos trabalhos de desenvolvimento. Você também deve planejar a modificação de aplicativos que atualmente usam timestamp .