ultimo scope_identity obtener insertado after c# .net ado.net

scope_identity - Recuperando el valor de RETURN @@ IDENTITY en C#



select @@identity (5)

Me parece que quieres ejecutar con un valor escalar

SqlCommand.ExecuteScalar()

como otros lo han mencionado, creo que usar SCOPE_IDENTITY () es más seguro que la variable @@ IDENTITY

Aquí hay una pregunta muy simple. Tengo un SP que inserta una fila en una tabla y al final aparece la declaración RETURN @@ IDENTITY. Lo que no puedo encontrar es una forma de recuperar este valor en C #. Estoy usando la biblioteca Enterprise y usando el método:

db.ExecuteNonQuery(cmd);

He intentado cmd.Parameters [0] .Value para obtener el valor, pero eso devuelve 0 todo el tiempo. ¿Algunas ideas?


Por cierto, en la mayoría de los casos, debe usar SCOPE_IDENTITY () en lugar de @@ IDENTITY. Ref .


Un punto para mencionar. Realmente debería usar SCOPE_IDENTITY para devolver el valor de identidad después de INSERTAR. Existe un potencial para que @@ IDENTITY devuelva el valor incorrecto. Especialmente si los GATILLOS están en uso, escribiendo valor en otras tablas después de INSERTAR.

Vea la página de Libros en línea para más detalles.


Dim c as new sqlcommand("...") Dim d As New SqlParameter() d.Direction = ParameterDirection.ReturnValue c.parameters.add(d) c.executeNonQuery (@@IDENTITY) = d.value

Es más o menos así ... esto o simplemente devuelve el valor de un procedimiento almacenado como un parámetro de salida.