Usuário com melhor resposta
Insert de Varias tabelas

Pergunta
-
Gente estou criando um banco com 10 tabelas....
Sendo que uma tenho uma tabela chamado Evento_Agendado que recebe um campo de cada tabela existente das demais, Ex: Ela recebe o campo nome da tabela Cliente / o campo Pagto da tabela pagamento / o campo horário da tabela de evento e assim por diante.....
Essa tabela possui 10 campos um de cada tabela, porem agora fiz um insert com select para que seja pego os valores de cada campo e adicionado nessa outra tabela mais quando vou adicionar outro select join ele da erro alguem poderia me ajudar a inserir mais de duas tabela em uma unica.....
Estou perdida...... Obrigado!!!
- Movido Naomi N terça-feira, 7 de maio de 2013 16:35 Better forum
Respostas
-
Faça um teste, rode somente o select abaixo para ver se retorna algo, as vezes o campo não esta nulo mas sim com a palavra NULL por alguma transformação:
SELECT E.NUM_EVENTO, E.COD_EVENTO, DTA_EVENTO, P.QTD_PESSOAS, CLI.END_CLI, CLI.NOME_CLI FROM EVENTO E JOIN NUM_EVENTO ON E.COD_EVENTO = CLI.COD_EVENTO JOIN CLIENTE CLI ON P.QTD_PESSOAS = E.QTD_PESSOAS WHERE E.COD_EVENTO = CLI.COD_EVENTO and (E.COD_EVENTO is null or E.COD_EVENTO = 'NULL')
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Felipo Gonçalves sexta-feira, 10 de maio de 2013 14:58
-
Deleted
- Marcado como Resposta Felipo Gonçalves sexta-feira, 10 de maio de 2013 14:58
-
Thata_,
Concordo com o Alexandre, desta forma, você vai conseguir validar o retorno dos dados que o seu select esta trazendo e com isso mapear realmente se estão sendo apresentandos valores nulos ou até mesmo em branco.
Mas analisando a mensagem de erro a Coluna COD_Evento esta recebendo uma instrução de Null no comando de Insert por isso o erro esta ocorrendo, uma alternativa seria utilizar a função IsNull(COD_Evento,1), onde caso o valor seja realmente null informar um valor padrão ou aleatório para esta coluna.
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 Felipo Gonçalves sexta-feira, 10 de maio de 2013 14:58
Todas as Respostas
-
Thata,
Para te ajudar melhor, passe o comando que vc está tentando executar e qual erro está acontecendo.
Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
-
INSERT INTO EVENTO_AGENDADO (NUM_EVENTO,COD_EVENTO,DTA_EVENTO,QTD_PESSOAS,
END_CLI,NOME_CLI)
SELECT E.NUM_EVENTO, E.COD_EVENTO,DTA_EVENTO, P.QTD_PESSOAS,CLI.END_CLI, CLI.NOME_CLI FROM EVENTO E JOIN NUM_EVENTO ON E.COD_EVENTO = CLI.COD_EVENTO JOIN CLIENTE CLI ON P.QTD_PESSOAS = E.QTD_PESSOAS WHERE E.COD_EVENTO = CLI.COD_EVENTOO erro é o seguinte
Cannot insert the value NULL into column 'COD_EVENTO', table EventosEC.dbo.EVENTO_AGENDADO'; column does not allow nulls. INSERT fails.The statement has been terminated.
Porem o valor não esta nullo, eu não consigo entender....
-
Faça um teste, rode somente o select abaixo para ver se retorna algo, as vezes o campo não esta nulo mas sim com a palavra NULL por alguma transformação:
SELECT E.NUM_EVENTO, E.COD_EVENTO, DTA_EVENTO, P.QTD_PESSOAS, CLI.END_CLI, CLI.NOME_CLI FROM EVENTO E JOIN NUM_EVENTO ON E.COD_EVENTO = CLI.COD_EVENTO JOIN CLIENTE CLI ON P.QTD_PESSOAS = E.QTD_PESSOAS WHERE E.COD_EVENTO = CLI.COD_EVENTO and (E.COD_EVENTO is null or E.COD_EVENTO = 'NULL')
Alexandre Matayosi Conde Mauricio.
- Marcado como Resposta Felipo Gonçalves sexta-feira, 10 de maio de 2013 14:58
-
Thata_,
Concordo com o Alexandre, desta forma, você vai conseguir validar o retorno dos dados que o seu select esta trazendo e com isso mapear realmente se estão sendo apresentandos valores nulos ou até mesmo em branco.
Mas analisando a mensagem de erro a Coluna COD_Evento esta recebendo uma instrução de Null no comando de Insert por isso o erro esta ocorrendo, uma alternativa seria utilizar a função IsNull(COD_Evento,1), onde caso o valor seja realmente null informar um valor padrão ou aleatório para esta coluna.
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 Felipo Gonçalves sexta-feira, 10 de maio de 2013 14:58
-
Deleted
- Marcado como Resposta Felipo Gonçalves sexta-feira, 10 de maio de 2013 14:58
-