SCOPE_IDENTITY

28/06/2006 - 06:15 por Pablo Rodríguez | Informe spam
Hola, estoy trabajando con SQL 2005 Express y VB.NET, hice el siguiente SP
:

CREATE PROCEDURE spAltaCurso
@Nombre nvarchar(25)
AS

BEGIN
SET NOCOUNT ON;
INSERT INTO tblCurso (Nombre)
VALUES (@Nombre);

SELECT SCOPE_IDENTITY() AS Id
END

mi problema es como invocarlo desde VB.NET... como no lo logré intenté hacer
una función que ejecutara el SP y devolviera el valor, pero me encontré con:

Msg 557, Level 16, State 2, Line 1
Desde una función sólo se pueden ejecutar funciones y procedimientos
almacenados extendidos.

De ahí que no se como invocarlo.

Desde ya agradezco la ayuda que me puedan brindar.
Saludos!!

Preguntas similare

Leer las respuestas

#1 J.A. García Barceló
28/06/2006 - 08:13 | Informe spam
Si no quieres rediseñar tu procedimiento almacenado, tal vez una estructura
INSERT-EXEC sea lo mas sencillo.
En el siguiente documento tienes comentado como hacerlo, así como otras
alternativas.

http://www.hayes.ch/sql/compartir_d...INSERTEXEC

J.A. García Barceló
http://jagbarcelo.blogspot.com/


"Pablo Rodríguez" escribió en el mensaje
news:
Hola, estoy trabajando con SQL 2005 Express y VB.NET, hice el siguiente SP
:

CREATE PROCEDURE spAltaCurso
@Nombre nvarchar(25)
AS

BEGIN
SET NOCOUNT ON;
INSERT INTO tblCurso (Nombre)
VALUES (@Nombre);

SELECT SCOPE_IDENTITY() AS Id
END

mi problema es como invocarlo desde VB.NET... como no lo logré intenté
hacer una función que ejecutara el SP y devolviera el valor, pero me
encontré con:

Msg 557, Level 16, State 2, Line 1
Desde una función sólo se pueden ejecutar funciones y procedimientos
almacenados extendidos.

De ahí que no se como invocarlo.

Desde ya agradezco la ayuda que me puedan brindar.
Saludos!!

Respuesta Responder a este mensaje
#2 Maxi
28/06/2006 - 13:40 | Informe spam
Hola, no entiendo cual es el problema de ese SP's, si lo ejecutas en el
Query Analizer funciona?


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Pablo Rodríguez" escribió en el mensaje
news:
Hola, estoy trabajando con SQL 2005 Express y VB.NET, hice el siguiente SP
:

CREATE PROCEDURE spAltaCurso
@Nombre nvarchar(25)
AS

BEGIN
SET NOCOUNT ON;
INSERT INTO tblCurso (Nombre)
VALUES (@Nombre);

SELECT SCOPE_IDENTITY() AS Id
END

mi problema es como invocarlo desde VB.NET... como no lo logré intenté
hacer una función que ejecutara el SP y devolviera el valor, pero me
encontré con:

Msg 557, Level 16, State 2, Line 1
Desde una función sólo se pueden ejecutar funciones y procedimientos
almacenados extendidos.

De ahí que no se como invocarlo.

Desde ya agradezco la ayuda que me puedan brindar.
Saludos!!

Respuesta Responder a este mensaje
#3 Pablo Rodríguez
28/06/2006 - 18:37 | Informe spam
Si, funciona, pero de la siguiente manera:

EXECUTE @var = spAltaGrupo

yo necesito usarlo desde .NET, o encontrar otra manera de agregar un
registro a la tabla y obtener el nuevo Id autogenerado.

Saludos!

"Maxi" escribió en el mensaje
news:
Hola, no entiendo cual es el problema de ese SP's, si lo ejecutas en el
Query Analizer funciona?


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Pablo Rodríguez" escribió en el mensaje
news:
Hola, estoy trabajando con SQL 2005 Express y VB.NET, hice el siguiente
SP :

CREATE PROCEDURE spAltaCurso
@Nombre nvarchar(25)
AS

BEGIN
SET NOCOUNT ON;
INSERT INTO tblCurso (Nombre)
VALUES (@Nombre);

SELECT SCOPE_IDENTITY() AS Id
END

mi problema es como invocarlo desde VB.NET... como no lo logré intenté
hacer una función que ejecutara el SP y devolviera el valor, pero me
encontré con:

Msg 557, Level 16, State 2, Line 1
Desde una función sólo se pueden ejecutar funciones y procedimientos
almacenados extendidos.

De ahí que no se como invocarlo.

Desde ya agradezco la ayuda que me puedan brindar.
Saludos!!





Respuesta Responder a este mensaje
#4 Carlos Gómez
28/06/2006 - 19:36 | Informe spam
Pablo Rodríguez wrote:

Si, funciona, pero de la siguiente manera:

EXECUTE @var = spAltaGrupo

yo necesito usarlo desde .NET, o encontrar otra manera de agregar un
registro a la tabla y obtener el nuevo Id autogenerado.

Saludos!



CREATE PROCEDURE spAltaCurso
@Nombre nvarchar(25),
@Id int output
AS

BEGIN
SET NOCOUNT ON;
INSERT INTO tblCurso (Nombre)
VALUES (@Nombre);

SET @Id = @@Identity
END

y ahora desde .NET una vez hecho el ExecuteNonQuery,
recorres los parametros y el parametro nº2 contiene el nuevo Id
(el nº 0 es @ReturnValue
el nº 1 es @Nombre
el nº 2 es @Id)


Desde Aguadulce - España
Carlos Gomez
Respuesta Responder a este mensaje
#5 Maxi
28/06/2006 - 20:08 | Informe spam
Hola, desde .NEt no se como hacerlo, te recomiendo que consultes en el foro
de .NET


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Pablo Rodríguez" escribió en el mensaje
news:
Si, funciona, pero de la siguiente manera:

EXECUTE @var = spAltaGrupo

yo necesito usarlo desde .NET, o encontrar otra manera de agregar un
registro a la tabla y obtener el nuevo Id autogenerado.

Saludos!

"Maxi" escribió en el mensaje
news:
Hola, no entiendo cual es el problema de ese SP's, si lo ejecutas en el
Query Analizer funciona?


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Pablo Rodríguez" escribió en el mensaje
news:
Hola, estoy trabajando con SQL 2005 Express y VB.NET, hice el siguiente
SP :

CREATE PROCEDURE spAltaCurso
@Nombre nvarchar(25)
AS

BEGIN
SET NOCOUNT ON;
INSERT INTO tblCurso (Nombre)
VALUES (@Nombre);

SELECT SCOPE_IDENTITY() AS Id
END

mi problema es como invocarlo desde VB.NET... como no lo logré intenté
hacer una función que ejecutara el SP y devolviera el valor, pero me
encontré con:

Msg 557, Level 16, State 2, Line 1
Desde una función sólo se pueden ejecutar funciones y procedimientos
almacenados extendidos.

De ahí que no se como invocarlo.

Desde ya agradezco la ayuda que me puedan brindar.
Saludos!!









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida