Usuário com melhor resposta
Como inserir registros em uma tabela buscando dados de outra tabela?

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)
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_1Assim 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
Todas as Respostas
-
-
-
-
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] -
-
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_1Assim 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
-
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] -
-
-