Eu tenho tabelas (mais de 100) que estão faltando chaves primárias. Na verdade, essas são tabelas herdadas. Agora, de acordo com alguns requisitos de replicação, precisamos adicionar a chave primária em cada uma dessas tabelas. Existe alguma maneira de descobrir possíveis chaves primárias em uma mesa (pronta para comprar um produto comercial)?
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
Você precisa definir os critérios para o que constitui uma "possível chave primária". Quando você tiver feito isso, você/nós podemos procurar (por exemplo sp_special_columns) ou produzir um script que use esse critério. Tais critérios podem ser:
Para 3 e 4, você está apostando, pois não ter duplicatas hoje não é garantia de que haverá duplicatas amanhã.
Em geral, há um risco de mexer em um banco de dados, a menos que você seja o proprietário do banco de dados. Digamos que você coloque uma coluna de identidade em cada tabela, torne-a o PK, apenas para poder usar a replicação. Agora, pode haver algum código que faça SELECT * e se decomponha porque agora obtém essa coluna adicional que você adicionou.