Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1112
Assunto : SQL Server
Titulo: Como gerar colunas que aceitem valores nulos com Select Into

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon




Gerar novas tabelas com a instrução Select Into é algo muito fácil, veja :

select companyname,0 as valor into #custtemp from customers


Porém, o que vai ocorrer se desejarmos que as colunas da nova tabela gerada aceitem valores nulos ?

Para isso precisaremos utilizar alguns truques na montagem da instrução Select Into.


Primeiramente, no caso do campo CampanyName. A característica nullable é herdada, então se ele fosse um campo nullable, continuaria sendo. Porém não é esse o caso. Podemos então usar uma expressão para resolver o problema :


select coalesce(companyname,null) as companyname, 0 as valor,'x' as texto into #custtemp from customers


Com o uso de coalesce na coluna, o resultado será uma coluna que aceita valores nulos, então resolvemos o problema para a coluna companyname.

Pode testar :

Insert into #custtemp values(null,0,'y')


A mesma função coalesce não irá funcionar para nenhum dos outros valores, porque são constantes e são resolvidas pelo compilador facilmente. Precisaremos "esconder" da função coalesce o resultado dessas constantes.

Primeiro, apague a tabela antes de um novo teste :

Drop table #custtemp

Agora veja como fica :

select coalesce(companyname,null) as companyname, coalesce(abs(0),null) as valor,coalesce(lower('x'),null)
as texto into #custtemp from customers

Escondendo o resultado das constantes, agora todas as colunas aceitaram nulo. Pode testar :

insert into #custtemp values (null,null,null)


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br