none
Insert de Varias tabelas RRS feed

  • 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
    terça-feira, 7 de maio de 2013 14:33

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.

    terça-feira, 7 de maio de 2013 17:22
  • Deleted
    quarta-feira, 8 de maio de 2013 00:56
  • 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]

    terça-feira, 7 de maio de 2013 18:57

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.

    terça-feira, 7 de maio de 2013 16:45
  • 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_EVENTO

    O 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....

    terça-feira, 7 de maio de 2013 17:17
  • 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.

    terça-feira, 7 de maio de 2013 17:22
  • 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]

    terça-feira, 7 de maio de 2013 18:57
  • Deleted
    quarta-feira, 8 de maio de 2013 00:56
  • Obrigado pelo auxilio....

    Resolvi meu problema....

    quinta-feira, 9 de maio de 2013 14:58