Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danielsjdr

Insert com Codigo de outra tabela

Recommended Posts

Ola pessoal,Tenho que inserir vários dados em uma tabela... o caso é que a tabela possui relacionamentos e estes sõa vinculados a um código interno do software.Em resumo, tentei realizar algo do tipo:

INSERT INTO TPRDCODIGO VALUES ('1', '1', '7891050000101', (SELECT IDPRD FROM TPRD WHERE CODIGOPRD = '05.008.00001'), '7/2/2006 17:52:11', '', 'UN', '1', '0')

O IDPRD é a chave estrangeira que vem da tabela TPRD da qual eu possuo somente o CODIGOPRD... entenderam?Aí o SQL deu o seguinte erro:

Subqueries are not allowed in this context. Only scalar expressions are allowed.

E aí? alguma sugestão?AttDaniel Lima

Compartilhar este post


Link para o post
Compartilhar em outros sites

joga pra uma variavel e depois coloca ela no insert

 

tipo assim:

declare @IDPRD INT --definir o tipo correto de acordo com a tabelaSELECT @IDPRD = IDPRD FROM TPRD WHERE CODIGOPRD = '05.008.00001'INSERT INTO TPRDCODIGO VALUES ('1', '1', '7891050000101', @IDPRD, '7/2/2006 17:52:11', '', 'UN', '1', '0')

Compartilhar este post


Link para o post
Compartilhar em outros sites

prefiro usar diferente,insert into tabela (campo1,campo2,campo3)select campo1,campo2,campo3 from tabela_outraSendo mais fácil se precisar utilizar um join

Compartilhar este post


Link para o post
Compartilhar em outros sites

NaPraia,

pode crer tb. é uma outra boa forma de se fazer neston...

 

danielsjdr,

no seu caso você daria select na tabela CODIGOPRD e traria somente o campo IDPRD os outros campos você colocaria fixo no select

INSERT INTO TPRDCODIGO (SELECT '1', '1', '7891050000101', IDPRD, '7/2/2006 17:52:11', '', 'UN', '1', '0' FROM TPRD WHERE CODIGOPRD = '05.008.00001')

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

INSERT INTO TPRDCODIGO (SELECT '1', '1', '7891050000101', IDPRD, '7/2/2006 17:52:11', '', 'UN', '1', '0' FROM TPRD WHERE CODIGOPRD = '05.008.00001')
abçs
Tentei, mas dá erro logo após o TPRDCODIGO

Incorrect syntax near the keyword 'SELECT'.

AttDaniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, legalsobre esta tecnica esqueci de mencionar que tem que informar os nomes dos campos no INSERT INTO, assim como o NaPraia fez...ficaria assim:

INSERT INTO TPRDCODIGO (nomedocampo1, nomedocampo2, etc...)(SELECT '1', '1', '7891050000101', IDPRD, '7/2/2006 17:52:11', '', 'UN', '1', '0' FROM TPRD WHERE CODIGOPRD = '05.008.00001')
t+

Tentei, mas dá erro logo após o TPRDCODIGO

Incorrect syntax near the keyword 'SELECT'.

AttDaniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.