Como definir Compatibilidade Nível for SQL Servidor 2008 ou 2005 Banco de dados
Quando selecionando dado ou praticante questão em Microosft SQL Servidor 2008 ou SQL Servidor 2005 banco de dados, a seguinte mensagem de erro ou bomba pode ser de volta:
[MicrosoftODBC][ SQL Servidor Automobilistas][ Servidor][ 4147, Nível 15, Estado 1, Linha 4] O questionário empregos não-ANSI exterior juntar operadores(”*=” “=*”). Correr esse questionário sem modificação, por favor set a compatibilidade nível for corrente banco de dados a 80, usando o conjunto COMPATIBILITY_LEVEL opção de ALTERAR Banco de dados. É fortemente recomendado reescrever o questionário usando ANSI exterior juntar operadores ( esquerda EXTERIOR Juntar, DIREITA EXTERIOR Juntar). No futuro versões
de SQL Servidor, não-ANSI juntar operadores não serão suportada já em atrasado- compatibilidade modas.
ou,
Msg 4147, Nível 15, Estado 1, Linha 3
O questionário empregos não-ANSI exterior juntar operadores(”*=” “=*”). Correr esse questionário sem modificação, por favor set a compatibilidade nível for corrente banco de dados a 80 ou mais baixo, usando armazenado proceder sp_dbcmptlevel. É fortemente recomendado reescrever o questionário usando ANSI exterior juntar operadores ( esquerda EXTERIOR Juntar, DIREITA EXTERIOR Juntar). No futuro versões de SQL Servidor, não-ANSI juntar operadores não serão suportada já em atrasado- compatibilidade modas.
O erro acontecer porque Microscópio caiu suporta for e eliminar velha- estilo *= e =* exterior juntar operadores.
Para afixar o SQL Servidor erro acima, DB administrador tem que ser set a base de dados compatibilidade nível a 80, qual equivalente com SQL Servidor 2000 como um temporário workaround. Pois sim, a melhor solução é para modificar o Instruções de SQL ou questões código para retirar o velha- estilo juntar operadores com standard corrente SQL juntar sintaxe.
Por exemplo, SQL questão abaixo não é válida:
SELETO o.name DE sys.objects o, sys.views v ONDE o.object_id *= v.object_id;
E devia ser substituída com a prosseguimento código:
SELETO o.name DE sys.objects o ESQUERDA JUNTAR sys.views v EM o.object_id = v.object_id;
Ou a seguinte abreviado interno juntar afirmação:
SELETO o.name DE sys.objects o, sys.views v ONDE o.object_id = v.object_id;
For administrador quem calão’ alteração o código, o o mais fácil workaround é reverter a compatibilidade nível da banco de dados para prover o atrasado compatibilidade a velha- estilo juntar. sp_dbcmptlevel armazenado procederes ( apologético) ou Transação-SQL pode ser utilizado para definir certa ( parcialmente, nem todas) banco de dados comportamentos aquela compressão compatível com a versão anterior de SQL Servidor. This MSDN artigo proporciona ver por alto em what comportamentos são alterado em qualquer compatibilidade nível.
Versão de SQL Servidor que pode ser revertido a pode ser um dos seguintes:
60 = SQL Servidor 6.0
65 = SQL Servidor 6.5
70 = SQL Servidor 7.0
80 = SQL Servidor 2000
90 = SQL Servidor 2005
100 = SQL Servidor 2008
nota Compatibilidade nível 60, 65, e 70 já não disponível em SQL Servidor 2008. E versão futura de SQL Servidor irá suporta somente dois (2) antes versão de atrasado compatibilidade. Uma base de dados contendo um índices vista não pode ser alterado a um compatibilidade nível mais baixo que 80. Fazer também tome nota que quando uma base de dados estiver definida como atrasado- compatibilidade moda, parte das nova funcionalidades pode ser perdido, tal SQL CLR suporta e SSMS diagramas à banco de dados. De resto, a compatibilidade moda afetar comportamentos somente à especificado banco de dados, não à total servidor.
Passos trocar e Set Compatibilidade Nível de um Banco de dados em SQL Servidor
A seguinte SQL comandos pode ser emitido em SQL Servidor Administração Estúdio Questão janela. Lembrar para executar Ir atrás de qualquer comando.
- opcional Set a base de dados escolher usuário modo de acesso:
ALTERAR BANCO DE DADOS database_name SET SINGLE_USER; - Set a base de dados compatibilidade nível a um dos versão anterior determinado acima:
Transação-SQL Método
ALTERAR BANCO DE DADOS database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }Por exemplo,
ALTERAR BANCO DE DADOS my_db SET COMPATIBILITY_LEVEL = 80
sp_dbcmptlevel Armazenado Proceder Método
AMALDIÇOAR sp_dbcmptlevel database_name, compatibility_level valor;Por exemplo,
AMALDIÇOAR sp_dbcmptlevel my_db, 90;
- opcional Recolocar a base de dados em multiuser modo de acesso:
ALTERAR BANCO DE DADOS database_name SET MULTI_USER;
importante: A página é máquina traduzida e previsto " como é" sem garantia. Máquina tradução pode ser difícil comprender. Por favor recorrer aoriginal Inglês artigo sempre que possível.
Relacionado Artigos
- Anular a instalação e Remover Múltipla Banco de dados Instâncias de Microscópio SQL Servidor 2005
- Microscópio DreamSpack Oferecimentos Livre Colocar a informação e Licença de Visual Estúdio 2008, Servidor 2003, SQL Servidor 2005 e More
- Colocar a informação Atualização para Windows 7 e Servidor 2008 R2 Beta (KB967062) afixar Comum Aplicação Problemas de compatibilidade
- Otimizar SQL Servidor 2000, 2005 ou 2008 em Grande CARNEIRO Sistema by Bloqueando Páginas em Memória e Assombração
- Confirmar Sistema Compatibilidade Via Microscópio Nova Aplicação Compatibilidade Ferramenta Versão 5.5
- Como executar Programada Reforços For SQL Servidor 2005 Explícito
- Erro Possui Ocorrido Enquanto Estabelecendo Uma ligação A SQL Servidor 2005 Qual Faz Não Permitir Local e Remoto Conexões
- Microscópio Virtual Servidor 2005 R2 Colocar a informação Disponível para Livre
- Alteração Oráculo Banco de dados Usuário Senha
- Microscópio Virtual Servidor 2005 R2 SP1 ( empreendimento Edição) Direto Colocar a informação Ligações










































Agosto 14th, 2009 0317:
[...] 7Â Â Â Â Â ) My Digital Vida. Como definir Compatibilidade Nível for SQL Servidor 2008 ou 2005 Banco de dados http://www.mydigitallife.info/2009/05/17/how-to-set-compatibility-level-for-sql-server-2008-or-2005-... [...]