.NextVal do Oracle no SQL SERVER

SQL Server

14/04/2008

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


Murilo-jau

Murilo-jau

Curtidas 0

Respostas

Groove

Groove

14/04/2008

se eu não me engano caro murilo-jau,

seria assim

[ID_MOVIREGIPROD] [int] IDENTITY(1,1) NOT NULL


Tomara ter ajudado!!


GOSTEI 0
Murilo-jau

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


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

14/04/2008

não informe o campo ID
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

Groove

14/04/2008

valew emerson.en!!!
quando fui postar vi sua msg!!!

valew mesmo!!!


GOSTEI 0
Murilo-jau

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.


GOSTEI 0
Murilo-jau

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

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.


GOSTEI 0
POSTAR