CORRECÇÃO: SQL Server 2005 trata uma coluna de identidade numa vista como uma coluna int normal quando o nível de compatibilidade da base de dados está definido como 80

Traduções de Artigos Traduções de Artigos
Artigo: 920974 - Ver produtos para os quais este artigo se aplica.
Erro: # 910 (correcção SQL)
A Microsoft distribui correcções Microsoft SQL Server 2005 como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova versão contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 anterior corrigir lançamento.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve o seguinte sobre esta versão de correcção:
  • Problemas corrigidos por este pacote de correcções
  • Os pré-requisitos para aplicar o pacote de correcções
  • Informações sobre se tem de reiniciar o computador depois de aplicar o pacote de correcções
  • Informações sobre se o pacote de correcções é substituído por qualquer outro pacote de correcção
  • Informações sobre se terá de efectuar quaisquer alterações de registo depois de aplicar o pacote de correcções
  • Ficheiros contidos no pacote de correcção

Sintomas

Considere o seguinte cenário. Tem uma base de dados do SQL Server 2005. Definir o nível de compatibilidade da base de dados para 80. Tiver uma vista existente ou criar uma vista na base de dados. A vista cumpre os seguintes requisitos:
  • A vista é criada em duas tabelas na base de dados.
  • A vista inclui uma coluna de identidade de uma das tabelas.
Neste cenário, o SQL Server 2005 trata apenas a coluna de identidade na vista como uma coluna normal int . No entanto, se tiver a mesma vista no Microsoft SQL Server 2000, SQL Server 2000 processa a coluna como a coluna de identidade .

Para verificar este problema no SQL Server 2005, pode consultar a coluna is_identity na vista de catálogo sys.columns contra a coluna de identidade na vista. Repare que o SQL Server 2005 devolve o valor 0 para a coluna de identidade na vista.

O nível de compatibilidade da base de dados no SQL Server 2005 também pode ser definido como 80 nos seguintes casos:
  • Actualiza uma base de dados do SQL Server 2000 existente para o SQL Server 2005. A base de dados do SQL Server 2000 terá o nível de compatibilidade de 80 no SQL Server 2005.
  • Desanexar uma base de dados do SQL Server 2000 e, em seguida, anexe a base de dados ao SQL Server 2005. A base de dados terá o nível de compatibilidade de 80 no SQL Server 2005.

Causa

Este problema ocorre porque o SQL Server 2005 trata a coluna de identidade da vista como uma coluna int . Este problema ocorre mesmo depois de definir o nível de compatibilidade da base de dados para 80 (SQL Server 2000).

Resolução

Está disponível a partir da Microsoft uma correcção suportada. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentado, contacte o serviço de cliente do Microsoft e suporte para obter a correcção.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para a qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Tem de ter o Microsoft SQL Server 2005 Service Pack 1 (SP1) instalado para aplicar esta correcção.

Para obter mais informações sobre como obter o SQL Server 2005 Service Pack 1, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
913089Como obter o service pack mais recente para o SQL Server 2005

Informações sobre reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações de registo

Não tem alterar o registo.

Informações sobre ficheiros da correcção

Esta correcção contém apenas os ficheiros necessários para corrigir os problemas referidos neste artigo. Esta correcção não pode conter de todos os ficheiros que necessita para actualizar completamente um produto para a compilação mais recente.

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário no item Data e hora no painel de controlo.
SQL Server 2005, 32 bits em x 86 versões
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Logread.exe2005.90.2167.0398,11220 De Junho de 200615: 35x 86
Microsoft.SQLServer.sqlenum.dll9.0.2167.0908,06420 De Junho de 200615: 37x 86
Ms.SS.mgdsqldumper.dll2005.90.2167.075,55220 De Junho de 200615: 29x 86
Msgprox.dll2005.90.2167.0197,92020 De Junho de 200615: 32x 86
Replprov.dll2005.90.2167.0547,61620 De Junho de 200615: 35x 86
Replrec.dll2005.90.2167.0782,11220 De Junho de 200615: 36x 86
Sbmsmdlocal.dll9.0.2167.015,662,36820 De Junho de 200615: 32x 86
Sqlaccess.dll2005.90.2167.0347,93620 De Junho de 200615: 34x 86
Sqlservr.exe2005.90.2167.028,950,36020 De Junho de 200615: 32x 86
SQL Server 2005, versão de 64 bits
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Logread.exe2005.90.2167.0522,52820 De Junho de 200615: 29x 64
Microsoft.SQLServer.sqlenum.dll9.0.2167.0875,29620 De Junho de 200615: 31x 86
Ms.SS.mgdsqldumper.dll2005.90.2167.091,42420 De Junho de 200615: 30x 64
Msgprox.dll2005.90.2167.0259,36020 De Junho de 200615: 28x 64
Replprov.dll2005.90.2167.0745,24820 De Junho de 200615: 30x 64
Replrec.dll2005.90.2167.01,008,41620 De Junho de 200615: 31x 64
Sbmsmdlocal.dll9.0.2167.015,662,36820 De Junho de 200615: 32x 86
Sqlaccess.dll2005.90.2167.0355,10420 De Junho de 200615: 29x 86
Sqlservr.exe2005.90.2167.039,262,49620 De Junho de 200615: 32x 64
SQL Server 2005, versão da arquitectura Itanium
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Logread.exe2005.90.2167.01,094,94420 De Junho de 200606: 39IA-64
Microsoft.SQLServer.sqlenum.dll9.0.2167.0875,29620 De Junho de 200606: 39x 86
Ms.SS.mgdsqldumper.dll2005.90.2167.0163,10420 De Junho de 200606: 41IA-64
Msgprox.dll2005.90.2167.0542,49620 De Junho de 200606: 38IA-64
Replprov.dll2005.90.2167.01,617,18420 De Junho de 200606: 39IA-64
Replrec.dll2005.90.2167.02,141,47220 De Junho de 200606: 39IA-64
Sbmsmdlocal.dll9.0.2167.048,738,59220 De Junho de 200606: 39IA-64
Sqlaccess.dll2005.90.2167.0349,47220 De Junho de 200606: 38x 86
Sqlservr.exe2005.90.2167.072,183,07220 De Junho de 200606: 39IA-64

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

Para alterar o comportamento do SQL Server 2005 depois de aplicar esta correcção, terá de efectuar uma das seguintes acções:
  • Se a vista na base de dados não é criada utilizando a opção WITH SCHEMABINDING , tem de executar o procedimento sp_refreshview armazenado na vista.
  • Se a vista na base de dados for criada utilizando a opção WITH SCHEMABINDING , tem de largar primeiro a vista. Em seguida, recrie a vista.
Depois de o fazer, SQL Server 2005 trata a coluna de identidade na vista o mesmo como o SQL Server 2000 para as vistas existentes.

Para todas as vistas recém-criadas depois de aplicar a correcção, SQL Server 2005 trata a coluna de identidade na vista o mesmo como o SQL Server 2000. Além disso, se anexar uma base do SQL Server 2000, as vistas na base de dados ligado são também consideradas o mesmo SQL Server 2000.

Para mais informações sobre o procedimento armazenado sp_refreshview , visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms187821.aspx
Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 920974 - Última revisão: 20 de novembro de 2007 - Revisão: 1.7
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
Palavras-chave: 
kbmt kbautohotfix kbtshoot kbsql2005engine kbhotfixserver kbqfe kbpubtypekc KB920974 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 920974

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com