.NextVal do Oracle no SQL SERVER
Olá, tenho um script em ORACLE em que faço um insert de dados de uma Tabela para outra. No campo ID que é Chave Primária uso o NEXTVAL para pegar o próximo valor do ID. Alguem sabe como possso fazer algo que dê o mesmo resultado no MSSQL ?
INSERT INTO TABELA1
SELECT EMPRESA,
FILIAL,
ID_MOVIREGIPROD.[b:d0dceb19f1]NEXTVAL,[/b:d0dceb19f1]
ID_REGIPROD,
ID_PEDIVEND,
ID_CARGEXPE,
FROM TABELA2
INSERT INTO TABELA1
SELECT EMPRESA,
FILIAL,
ID_MOVIREGIPROD.[b:d0dceb19f1]NEXTVAL,[/b:d0dceb19f1]
ID_REGIPROD,
ID_PEDIVEND,
ID_CARGEXPE,
FROM TABELA2
Murilo-jau
Curtidas 0
Respostas
Groove
14/04/2008
se eu não me engano caro murilo-jau,
seria assim
Tomara ter ajudado!!
seria assim
[ID_MOVIREGIPROD] [int] IDENTITY(1,1) NOT NULL
Tomara ter ajudado!!
GOSTEI 0
Murilo-jau
14/04/2008
GROOVE, primeiramente obrigado pela atenção !
O que vc passou seria só como o Campo ID seria criado, blz!
Mas a questão é mesmo como faço na hora do SELECT do INSERT, pois se o select resultar 100 registros tenho que geram 100 novos ID´s para passar pro insert
O que vc passou seria só como o Campo ID seria criado, blz!
Mas a questão é mesmo como faço na hora do SELECT do INSERT, pois se o select resultar 100 registros tenho que geram 100 novos ID´s para passar pro insert
GOSTEI 0
Emerson Nascimento
14/04/2008
não informe o campo ID
(isso só funciona se o campo ID_MOVIREGIPROD for do tipo IDENTITY)
INSERT INTO TABELA1 (campo_Filial, campo_Empresa, campo.ID_REGIPROD, campo.ID_PEDIVEND, campo.ID_CARGEXPE) SELECT EMPRESA, FILIAL, ID_REGIPROD, ID_PEDIVEND, ID_CARGEXPE FROM TABELA2
(isso só funciona se o campo ID_MOVIREGIPROD for do tipo IDENTITY)
GOSTEI 0
Groove
14/04/2008
valew emerson.en!!!
quando fui postar vi sua msg!!!
valew mesmo!!!
quando fui postar vi sua msg!!!
valew mesmo!!!
GOSTEI 0
Murilo-jau
14/04/2008
Oi, legal, valeu ai pelos post.
Mas é o seguinte esqueci de informar o mais importante, aqui onde trabalho foi decido fazer o seguinte:
*esse ID_MOVIREGIPROD ele é PK Numeric mas não foi criado como um IDENTITY
* Paralelamente existe uma tabela só para guardar o ID (TABELA3) aonde o campo ID_SEQUENCE é um campo Numeric IDENTITY.
Então ai o bixo pegou, pois eu teria que fazer tipo um Insert na TABELA3 dentro do INSERT na TABELA1!!
:cry: :roll:
Não sei se expliquei claramente.
Mas é o seguinte esqueci de informar o mais importante, aqui onde trabalho foi decido fazer o seguinte:
*esse ID_MOVIREGIPROD ele é PK Numeric mas não foi criado como um IDENTITY
* Paralelamente existe uma tabela só para guardar o ID (TABELA3) aonde o campo ID_SEQUENCE é um campo Numeric IDENTITY.
Então ai o bixo pegou, pois eu teria que fazer tipo um Insert na TABELA3 dentro do INSERT na TABELA1!!
:cry: :roll:
Não sei se expliquei claramente.
GOSTEI 0
Murilo-jau
14/04/2008
AHH, E TUDO ISSO É SÓ PARA UM SCRIPT APENAS, SÓ PRECISO RODA-LO PARA FAZER ALGUNS AJUSTES EM UMA TABELA (TABELA1)
GOSTEI 0
Murilo-jau
14/04/2008
Resolvi, meio gambiarra, mas neste caso é a unica solução.
Criei uma table temporaria com um campo IDENTITY, e usei como contador de um select em que fiz o INsert na tabela1, depois fiz um select para ver quantos registro foram inseridos e fiz o Insert na tabela3, mas só para este caso, pois se o o sistema estivesse rodando iria dar pau de integridade se algum usuário inserisse algo na tabela 1.
Criei uma table temporaria com um campo IDENTITY, e usei como contador de um select em que fiz o INsert na tabela1, depois fiz um select para ver quantos registro foram inseridos e fiz o Insert na tabela3, mas só para este caso, pois se o o sistema estivesse rodando iria dar pau de integridade se algum usuário inserisse algo na tabela 1.
GOSTEI 0