none
Como inserir registros em uma tabela buscando dados de outra tabela? RRS feed

  • Pergunta

  • Ola pessol mais um vez recorro ao forum para uma ajuda:

    Seguinte criei uma tabela Tvenda e gostaria de inserir registros nela so que gostaria de armazenar nela as referencias de outras duas tabelas Tcliente e Tproduto.

    segue o código da Tvenda:

    CREATE

     

    TABLE [dbo].[Tvenda](

    [id_venda] [int]

    IDENTITY(1,1) NOT NULL,

    [valor_venda] [money]

    NOT NULL,

    [data_venda] [datetime]

    NOT NULL,

    [forma_pagamento] [varchar]

    (30) COLLATE Latin1_General_CI_AS NULL,

    [quantidade] [int]

    NOT NULL,

    [id_produto] [int]

    NULL,

    [id_cliente] [int]

    NULL,

    PRIMARY

     

    KEY CLUSTERED

    (

    [id_venda]

    ASC

    )

     

    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

    )

     

    ON [PRIMARY]

    GO

    SET

     

    ANSI_PADDING OFF

    GO

    ALTER

     

    TABLE [dbo].[Tvenda] WITH CHECK ADD CONSTRAINT [FK_cliente_venda] FOREIGN KEY([id_cliente])

    REFERENCES

     

    [dbo].[Tcliente] ([id_cliente])

    GO

    ALTER

     

    TABLE [dbo].[Tvenda] CHECK CONSTRAINT [FK_cliente_venda]

    GO

    ALTER

     

    TABLE [dbo].[Tvenda] WITH CHECK ADD CONSTRAINT [FK_produto_venda] FOREIGN KEY([id_produto])

    REFERENCES

     

    [dbo].[Tproduto] ([id_produto])

    GO

    ALTER

     

    TABLE [dbo].[Tvenda] CHECK CONSTRAINT [FK_produto_venda]

    que contem as FK das tabelas Tproduto e Tcliente.

    desde ja agradeço a atenção

    • Movido Gustavo Maia Aguiar sexta-feira, 2 de julho de 2010 20:14 (De:SQL Server - Desenvolvimento Geral)
    quinta-feira, 1 de julho de 2010 16:28

Respostas

  • Olá Rivelino,

    Eu acredito que o que você quer fazer é um select/insert é isso? Veja o exemplo:

    INSERT INTO SUA_TABELA_QUE_RECEBERA_OS_REGISTROS(CAMPO1, CAMPO2, CAMPO3)
    SELECT CAMPO1, CAMPO2, CAMPO3
    FROM SUA_TABELA_1

    Assim você tem apenas que se atentar em colocar os campos do select na mesma ordem que no do insert.

    Espero ter ajudado, ao menos um pouco!

    []s

    PS: Se o post foi útil, classifique-o como resposta! ;-)


    Carlos Monteiro
    MCP ASP.Net C#
    twitter: @carloshkd
    http://www.wx7.com.br
    • Marcado como Resposta Rivelino_bh sexta-feira, 9 de julho de 2010 15:48
    terça-feira, 6 de julho de 2010 16:55

Todas as Respostas

  • Rivelino,

    Que tipo de referências?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quinta-feira, 1 de julho de 2010 19:48
  • Eu criei foreign key das tabelas que quero buscar os dados na tabela de destino.
    quinta-feira, 1 de julho de 2010 20:53
  • Boa noite Rivelino,

    E que tipo de problema está tendo?

    sexta-feira, 2 de julho de 2010 01:27
  • Rivelino,

    Independente de existir ou não FK, o que você deverá fazer é realizar um select sobre a tabela que contem os dados trazendo para a tabela que deseja armazenar os dados passando para o comando Insert.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    sábado, 3 de julho de 2010 20:11
  • Até que os Select's Eu sei fazer o problema é passar o resultado dos select para essa tabela.
    segunda-feira, 5 de julho de 2010 16:19
  • Olá Rivelino,

    Eu acredito que o que você quer fazer é um select/insert é isso? Veja o exemplo:

    INSERT INTO SUA_TABELA_QUE_RECEBERA_OS_REGISTROS(CAMPO1, CAMPO2, CAMPO3)
    SELECT CAMPO1, CAMPO2, CAMPO3
    FROM SUA_TABELA_1

    Assim você tem apenas que se atentar em colocar os campos do select na mesma ordem que no do insert.

    Espero ter ajudado, ao menos um pouco!

    []s

    PS: Se o post foi útil, classifique-o como resposta! ;-)


    Carlos Monteiro
    MCP ASP.Net C#
    twitter: @carloshkd
    http://www.wx7.com.br
    • Marcado como Resposta Rivelino_bh sexta-feira, 9 de julho de 2010 15:48
    terça-feira, 6 de julho de 2010 16:55
  • Carlos,

    Concordo com sua sugestão, o Insert ... Select é simples e de fácil entendimento.

    Boa solução.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    terça-feira, 6 de julho de 2010 23:58
  • Junior,

    Obrigado! :-)


    Carlos Monteiro
    MCP ASP.Net C#
    twitter: @carloshkd
    http://www.wx7.com.br
    quinta-feira, 8 de julho de 2010 12:12
  • Carlos,

    Obrigado pelo retorno, espero que tenha dado certo.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    sexta-feira, 9 de julho de 2010 18:55
  • Ola Carlos,

    Valeu a dica....

    AbraçosTânia

    terça-feira, 19 de outubro de 2010 18:45