Acceder al campo "autonumerado" que creó un Insert dentro de un SP

21/11/2005 - 20:59 por Marcelo Clavero | Informe spam
Estimados:

Tengo un SP que hace un insert sobre una tabla cuya PK es un autonumerado.
Dentro del mismo SP, necesito hacer otro Insert, que guarde en otra tabla,
el autonumerado que se generó en el anterior insert.

Ejemplo:
CREATE PROCEDURE RegistrarContacto
@nombre varchar(100) = null,
@direccion varchar(150) = null,
@telefono1 varchar(50) = null,
@descripcion varchar(100)=null,
@es_corredor bit
AS

autonumerado.
INSERT INTO CON_Contactos (nombre,direccion, telefono1)
VALUES (@nombre,@direccion, @telefono1)
GO

id_contacto generado en tabla anterior.
IF @es_corredor
INSERT INTO CON_Corredores (id_contacto, descripcion) VALUES(<no sé que
poner aquí>,@descripcion)
GO

Espero que con este ejemplo me puedan ayudar.
Muchas gracias desde ya por vuestro tiempo.

Saludos.
Marcelo

Preguntas similare

Leer las respuestas

#1 Isaias
21/11/2005 - 22:35 | Informe spam
DECLARE @MyIdentity INT

autonumerado.
INSERT INTO CON_Contactos (nombre,direccion, telefono1)
VALUES (@nombre,@direccion, @telefono1)
SET @MyIdentity = SCOPE_IDENTITY()
GO

IF @@ROWCOUNT = 0
PRINT 'ERROR, NO SE HIZO EL INSERT'

id_contacto generado en tabla anterior.
IF @es_corredor
INSERT INTO CON_Corredores (id_contacto, descripcion)
VALUES(@MyIdentity,@descripcion)
GO



Saludos
IIslas


"Marcelo Clavero" escribió:

Estimados:

Tengo un SP que hace un insert sobre una tabla cuya PK es un autonumerado.
Dentro del mismo SP, necesito hacer otro Insert, que guarde en otra tabla,
el autonumerado que se generó en el anterior insert.

Ejemplo:
CREATE PROCEDURE RegistrarContacto
@nombre varchar(100) = null,
@direccion varchar(150) = null,
@telefono1 varchar(50) = null,
@descripcion varchar(100)=null,
@es_corredor bit
AS

autonumerado.
INSERT INTO CON_Contactos (nombre,direccion, telefono1)
VALUES (@nombre,@direccion, @telefono1)
GO

id_contacto generado en tabla anterior.
IF @es_corredor
INSERT INTO CON_Corredores (id_contacto, descripcion) VALUES(<no sé que
poner aquí>,@descripcion)
GO

Espero que con este ejemplo me puedan ayudar.
Muchas gracias desde ya por vuestro tiempo.

Saludos.
Marcelo



Respuesta Responder a este mensaje
#2 Alejandro Mesa
21/11/2005 - 22:35 | Informe spam
Marcelo,

usa la funcion SCOPE_IDENTITY.

CREATE PROCEDURE RegistrarContacto
@nombre varchar(100) = null,
@direccion varchar(150) = null,
@telefono1 varchar(50) = null,
@descripcion varchar(100)=null,
@es_corredor bit
AS

declare @last_ident int

autonumerado.
INSERT INTO CON_Contactos (nombre,direccion, telefono1)
VALUES (@nombre,@direccion, @telefono1)

set @last_ident = SCOPE_IDENTITY()

id_contacto generado en tabla anterior.
IF @es_corredor
INSERT INTO CON_Corredores (id_contacto, descripcion)
VALUES(@last_ident,@descripcion)
GO


AMB

"Marcelo Clavero" wrote:

Estimados:

Tengo un SP que hace un insert sobre una tabla cuya PK es un autonumerado.
Dentro del mismo SP, necesito hacer otro Insert, que guarde en otra tabla,
el autonumerado que se generó en el anterior insert.

Ejemplo:
CREATE PROCEDURE RegistrarContacto
@nombre varchar(100) = null,
@direccion varchar(150) = null,
@telefono1 varchar(50) = null,
@descripcion varchar(100)=null,
@es_corredor bit
AS

autonumerado.
INSERT INTO CON_Contactos (nombre,direccion, telefono1)
VALUES (@nombre,@direccion, @telefono1)
GO

id_contacto generado en tabla anterior.
IF @es_corredor
INSERT INTO CON_Corredores (id_contacto, descripcion) VALUES(<no sé que
poner aquí>,@descripcion)
GO

Espero que con este ejemplo me puedan ayudar.
Muchas gracias desde ya por vuestro tiempo.

Saludos.
Marcelo



Respuesta Responder a este mensaje
#3 Marcelo Clavero
22/11/2005 - 18:43 | Informe spam
Mil gracias, me funcionó perfecto.

"Marcelo Clavero" escribió en el mensaje
news:
Estimados:

Tengo un SP que hace un insert sobre una tabla cuya PK es un autonumerado.
Dentro del mismo SP, necesito hacer otro Insert, que guarde en otra tabla,
el autonumerado que se generó en el anterior insert.

Ejemplo:
CREATE PROCEDURE RegistrarContacto
@nombre varchar(100) = null,
@direccion varchar(150) = null,
@telefono1 varchar(50) = null,
@descripcion varchar(100)=null,
@es_corredor bit
AS

autonumerado.
INSERT INTO CON_Contactos (nombre,direccion, telefono1)
VALUES (@nombre,@direccion, @telefono1)
GO

id_contacto generado en tabla anterior.
IF @es_corredor
INSERT INTO CON_Corredores (id_contacto, descripcion) VALUES(<no sé que
poner aquí>,@descripcion)
GO

Espero que con este ejemplo me puedan ayudar.
Muchas gracias desde ya por vuestro tiempo.

Saludos.
Marcelo


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida