PUBLICIDADE
Este artigo tem nota
9,5

Autor

lemeleme

Ricardo Leme

membro deste junho de 2009

Tags

Enquete

Com que frequência você acessa o CódigoFonte.com.br?
PUBLICIDADE

quarta-feira, 29 de fevereiro de 2012

Como rodar SELECT FROM DUAL no SQL Server?


Uma dúvida comum de quem está migrando do Oracle para o SQL Server é querer saber qual tabela representa a "DUAL" do Oracle no SQL Server.

Nota: A tabela DUAL do Oracle é uma tabela também conhecida como "dummy", ou seja, uma tabela bobinha, ou, em uma tradução livre do inglês, tabela estúpida, utilizada apenas para poder informá-la na cláusula FROM.

Resposta simples: Não existe a tabela DUAL e nem nenhuma tabela equivalente no SQL Server!

"Poxa, e agora?"

Calma! Na verdade você pode fazer um SELECT no SQL Server sem informar nada na cláusula FROM.
Vejamos um exemplo:

Para obter a data atual no Oracle:

SELECT SYSDATE FROM DUAL

Para obter a data atual no SQL Server:


SELECT GETDATE()

Agora se você está transferindo um programa desenvolvido em Oracle para o SQL Server e não deseja remover todas as referências à tabela DUAL, existe uma "solução alternativa" para isso!

Basta criar uma tabela chamada DUAL no SQL Server, conforme exemplo abaixo:

CREATE TABLE DUAL( DUAL varchar(1));

INSERT INTO DUAL (DUAL) VALUES (NULL);

Vamos rodar no SQL Server:

SELECT GETDATE() FROM DUAL;

Como a tabela DUAL possui apenas 1 registro, o retorno da função será apenas 1 também!

Aproveitando:

Para rodar SELECT FROM DUAL no Firebird, você pode usar a tabela RDB$DATABASE que sempre contém um único registro, ou efetuar a mesma "solução alternativa" adotada no SQL Server.

No Postgree o conceito é o mesmo do SQL Server, ou seja, você não precisa de uma tabela "dummy" para retornar as informações, conforme exemplo:
Para obter a data atual no Postgree:

select current_date

Sim   Não   Este artigo foi útil para você?
NotaComentário
10
tmaster comentou em 7/6/2012

Nice

Como a Nice citou: Oracle is Oracle. hehe
9
guiski comentou em 29/5/2012

Nice

SQL Server is M$, Oracle is Oracle =]
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

© 2006-2013 R&W Informática Ltda. - Todos os direitos reservados. - Política de Privacidade | Mapa do Site