Pergunta

Eu estou usando SQL-Server 2005.

Eu tenho um banco de dados dev e prod que têm essencialmente os mesmos dados neles. Quando eu faço uma comparação com RedGate dados SQL Compare 5, ele diz que apenas 4 registros diferentes. No entanto, quando eu abrir as tabelas e visualizá-los, eles estão em uma ordem de classificação completamente diferente. Nem tabela tem um índice ou qualquer coisa forçando a ordem de classificação, e eu estou tentando ter certeza que meu dev é classificada na mesma ordem como prod. Mas RedGate não vai me dizer quando estou perto, porque ele é, aparentemente, encontrar registros que correspondem, mesmo se eles não estão na mesma ordem de classificação. Como faço para substituir isso?

Eu gostaria de usar a ferramenta para dizer quando eu descobri a ordem de classificação, para se certificar de que tem direito.

Foi útil?

Solução

Diferentes ordem de classificação apenas significa que as linhas são colocados nos arquivos de dados de uma forma física diferente, mas os dados ainda corresponde exatamente, de modo DC ainda relata que eles combinam. Não há nenhuma opção para fazê-lo "Respeite fim disco físico" (que é essencialmente o que você está pedindo), porque mesmo se notado uma diferença, não há nenhuma maneira de sincronizar a diferença, como SQL Server não tem nenhum método para o controle de Modificar ordem do disco.

A fim de que os dados são retirados do disco quando você consultar uma tabela não deve nunca ser invocado - se você precisar de uma certa ordem, você deve incluir um "ORDER BY" cláusula na sua consulta para forçar uma certa ordem de classificação . Se há alguma razão que você não pode utilizar ORDER BY, sua única outra opção para forçar uma certa ordem de classificação é a adição de um índice agrupado no campo pelo qual você gostaria de classificar a tabela.

Se você realmente precisa para re-ordenar os dados, então você vai precisar para truncar a tabela que é "errado" e preenchê-lo com um "INSERT INTO [table fim mau] SELECT * FROM [tabela de ordem boa]". Mesmo assim, enquanto ele deve ter o efeito desejado, não há nenhuma garantia.

Eu recomendo o fim da cláusula como a sua melhor opção. Se há uma razão nenhuma dessas opções irá trabalhar, deixe-me saber e eu posso tentar sugerir outra coisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top