Devolver un @@Identity

29/01/2006 - 02:18 por Julieta | Informe spam
hola a todos!!

alguien podria decirme como hacer para que cuando actualice la base de datos
con el metodo Update del sqlDataAdapter, me devuelva la valor de una columna
autoincremental de sql server.???
en la ayuda busque identidad y encontre un ejemplo pero no se aplicarlo.

gracias.
 

Leer las respuestas

#1 Jesús López
29/01/2006 - 09:20 | Informe spam
La propiedad CommandText del InsertCommand del DataAdapter deberá tener la
forma:

INSERT INTO TABLA(Campo1, Campo2, ) VALUES(@Campo1, @Campo2, ...);
SELECT @@Identity As NombreCampoAutonumérico

Si estamos en SQL 2000 ó 2005, es mejor usar SCOPE_IDENTITY():

INSERT INTO TABLA(Campo1, Campo2, ) VALUES(@Campo1, @Campo2, ...);
SELECT SCOPE_IDENTITY() As NombreCampoAutonumérico

También vale esta otra:

INSERT INTO TABLA(Campo1, Campo2, ) VALUES(@Campo1, @Campo2, ...);
SELECT NombreCampoAutonumérico, Campo1, Campo2
FROM Tabla
WHERE NombreCampoAutonumérico = SCOPE_IDENTITY()

La propiedad UpdatedRowSource del InsertCommand deberá ser
FirstReturnedRecord o Both.

Con esto, el DataAdapter actualizará automáticamente el campo autonumérico
en el datarow recién insertado en la base de datos con el valor devuelto por
SCOPE_IDENTITY()

Saludos:

Jesús López
MVP

Preguntas similares