Usuário com melhor resposta
Pesquisa com select no sql 2012

Pergunta
-
Bom dia...
Tenho uma aplicação que ao fazer uma pesquisa em uma tabela no banco de dado, faz o seguinte comando SQL :
select c.name, c.status, o.name from syscolumns c, sysobjects o where c.id = object_id ('dbo.Tipo_Operacao_Fiscal') and c.cdefault *= o.id order by colid ASC
E, está dando problema no *=,
O que fazer para resolver ?
Abs,
JUNIOR GUERREIRO T.I
- Editado Junior Guerreiro quinta-feira, 15 de maio de 2014 13:21
Respostas
-
Durval e o seguinte se eu precisar desinstalar o sql 2012 do server, e instalar o sql 2008 vou ter algum problema, com a instancia..
JUNIOR GUERREIRO T.I
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:21
-
Durval e o seguinte se eu precisar desinstalar o sql 2012 do server, e instalar o sql 2008 vou ter algum problema, com a instancia..
JUNIOR GUERREIRO T.I
Tchula,
Você poderá ter problemas com outros bancos que podem estar nesta mesma instância. Reinstale a versão que você utilizava anteriormente em outro servidor para fazer seu sistema retornar ao funcionamento em Produção sem maiores impactos.
Se você não tem acesso aos fontes, acredito que você não tem muitas outras opções e deverá manter esta versão do SQL Server, onde o software foi testado e homologado para uso.
Não esqueça de marcar como resposta todos os posts que ajudaram na solução!
Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:21
-
Tchula,
Uma alternativa para tentar utilizar este tipo de Join, que foi criado para os padrões SQL Ansi 90 é alterar o nível de compatibilidade do banco de dados para 80 que representa o SQL Server 2000.
Agora desculpe-me a sinceridade o seu fornecedor precisa melhorar esta aplicação, não é aceitável que este tipo de instrução que já foi removida a aproximadamente 10 anos ainda seja utilizada.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Editado Junior Galvão - MVPMVP quarta-feira, 21 de maio de 2014 13:21
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:20
-
Bom dia Pedro...
Vc pode me dizer como e onde eu faço esta alteração no SQL 2012, e se eu vou ter problemas depois de feita esta alteração..
JUNIOR GUERREIRO T.I
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:20
-
Tchula,
A alteração do nível de compatibilidade é nas propriedades do Banco de Dados.
Em relação a problemas, somente se você estiver utilizando alguma funcionalidade que foi aplicada após o nível de compatibilidade 80, mas pelo seu cenário acredito que não terá.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:20
-
Boa tarde..
Rodei este comando no banco de dados
USE EGISSQL
GO
ALTER DATABASE EGISSQL
SET COMPATIBILITY_LEVEL = 80
GOe me deu um erro dizendo que o sql 2012 só e compatível com 90, 100, 110
JUNIOR GUERREIRO T.I
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:21
Todas as Respostas
-
Tchula,
Altere seu SELECT para utilizar LEFT JOIN, veja um exemplo abaixo para você adaptar à sua necessidade.
select c.name, c.status, o.name from syscolumns c LEFT JOIN sys.sysobjects o ON c.cdefault = o.id where c.id = object_id ('dbo.Tipo_Operacao_Fiscal') order by colid ASC
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil" -
-
Tchula,
Esta sintaxe é uma herança que o SQL Server ainda mantinha vindo do Sybase, mas que não é mais suportada nas novas versões.
Acredito que para manter esta consulta sem nenhuma alteração você vai precisar manter este banco de dados em uma versão anterior do SQL Server, uma vez que alterar o nível de compatibilidade dos bancos (onde está esta tabela e o "master") pode gerar problemas de funcionamento para toda sua instância SQL.
A analise da melhor opção é sua (alterar o fonte com o fornecedor ou a versão do SQL Server).
Se ajudou na sua solução, não esqueça de marcar como resposta !Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 21 de maio de 2014 13:17
-
Durval e o seguinte se eu precisar desinstalar o sql 2012 do server, e instalar o sql 2008 vou ter algum problema, com a instancia..
JUNIOR GUERREIRO T.I
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:21
-
-
Durval e o seguinte se eu precisar desinstalar o sql 2012 do server, e instalar o sql 2008 vou ter algum problema, com a instancia..
JUNIOR GUERREIRO T.I
Tchula,
Você poderá ter problemas com outros bancos que podem estar nesta mesma instância. Reinstale a versão que você utilizava anteriormente em outro servidor para fazer seu sistema retornar ao funcionamento em Produção sem maiores impactos.
Se você não tem acesso aos fontes, acredito que você não tem muitas outras opções e deverá manter esta versão do SQL Server, onde o software foi testado e homologado para uso.
Não esqueça de marcar como resposta todos os posts que ajudaram na solução!
Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:21
-
Tchula,
Uma alternativa para tentar utilizar este tipo de Join, que foi criado para os padrões SQL Ansi 90 é alterar o nível de compatibilidade do banco de dados para 80 que representa o SQL Server 2000.
Agora desculpe-me a sinceridade o seu fornecedor precisa melhorar esta aplicação, não é aceitável que este tipo de instrução que já foi removida a aproximadamente 10 anos ainda seja utilizada.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Editado Junior Galvão - MVPMVP quarta-feira, 21 de maio de 2014 13:21
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:20
-
Bom dia Pedro...
Vc pode me dizer como e onde eu faço esta alteração no SQL 2012, e se eu vou ter problemas depois de feita esta alteração..
JUNIOR GUERREIRO T.I
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:20
-
Tchula,
A alteração do nível de compatibilidade é nas propriedades do Banco de Dados.
Em relação a problemas, somente se você estiver utilizando alguma funcionalidade que foi aplicada após o nível de compatibilidade 80, mas pelo seu cenário acredito que não terá.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:20
-
Boa tarde..
Rodei este comando no banco de dados
USE EGISSQL
GO
ALTER DATABASE EGISSQL
SET COMPATIBILITY_LEVEL = 80
GOe me deu um erro dizendo que o sql 2012 só e compatível com 90, 100, 110
JUNIOR GUERREIRO T.I
- Marcado como Resposta Junior Guerreiro quinta-feira, 3 de julho de 2014 20:21