Existe uma consulta que eu possa executar que me mostre todas as tabelas com uma coluna de identidade? Tentando descobrir se existem tabelas baseadas em identidade cuja identidade atual está se aproximando do limite superior de int32 ou int64.
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Há uma coluna em
sys.columns
que identifica as colunas de identidade (is_identity
).Além disso, há uma
IDENT_CURRENT()
função que você pode usar para identificar o valor de identidade gerado mais recentemente para uma tabela para determinar se você está se aproximando do int max. ( documentos )Você pode simplesmente consultar isso para identificar todas as tabelas com uma coluna de identidade (e qual é a coluna de identidade) fazendo algo assim:
Você pode adicionar à
WHERE
cláusula para adicionar critérios adicionais para capturar apenas as tabelas que estão se aproximando demais para o conforto como base para gerar seu alerta.Isso também se baseia
sys.identity_columns
:Eu escrevi um script (baseado em
sys.identity_columns
) há muito tempo para essa finalidade.Fiz uma tentativa de incluir uma estimativa para a data em que você ficará sem valores de identidade, assumindo uma taxa de inserção padrão (você pode configurar esta opção).