Obtener ID autonumerico insertado en SQL Server con ASP clásico

Código ASP clásico

Recuperar la identidad de un registro recién insertado puede ser muy útil si desea devolver el valor en el navegador o utilizarlo en una inserción o comando de actualización con el fin de crear o mantener una relación entre dos o más registros.

Primero debe crear un Stored Procedure:

    CREATE PROCEDURE spInsertRecord

@Text varchar(20),
@Number int

AS

SET NOCOUNT ON

INSERT INTO tblName(TextField, NumberField) VALUES(@Text, @Number)
SELECT @@IDENTITY

RETURN @@IDENTITY

SET NOCOUNT OFF

Go

Ahora puede llamar al SP desde una página de ASP clásico:

    <%
set commInsert = Server.CreateObject("ADODB.Command")
commInsert.ActiveConnection = strConnection
commInsert.CommandText = "spInsertRecord"
commInsert.CommandType = 4
commInsert.CommandTimeout = 0
commInsert.Prepared = true
commInsert.Parameters.Append commInsert.CreateParameter("@RETURN_VALUE", 3, 4,4)
commInsert.Parameters.Append commInsert.CreateParameter("@Text", 200,_     1,20,"ABC")
commInsert.Parameters.Append commInsert.CreateParameter("@Number", 3, 1,4,"123")
commInsert.Execute()
%>

Así es como se puede recuperar el identificador del nuevo registro:

    <% intNewID = commInsert.Parameters.Item("@RETURN_VALUE").Value %>  

Al programar en ASP clásico es recomendable usar Stored Procedures en SQL Server. Sin embargo, si no le es posible crear un SP entonces puede hacerse directamente desde ASP clásico:

    <%
strSQL = "SET NOCOUNT ON INSERT INTO tblName(TextField, NumberField)_
    VALUES('ABC', 123) SELECT @@IDENTITY AS NewID SET NOCOUNT OFF"

strConnection = "Provider=SQLOLEDB.1;Password=YourPassword;Persist Security Info=True;_
    User ID=YourUserID; Initial Catalog=YourDB;Data Source=YOUR_REMOTE_SERVER_NAME"

Set commInsert = Server.CreateObject("ADODB.Connection")
commInsert.Open strConnection
Set rsNewID = commInsert.Execute(strSQL)
intNewID = rsNewID("NewID")
commInsert.Close()
Set commInsert = Nothing
rsNewID.Close()
Set rsNewID = Nothing
%>

El comando de inserción se ejecuta y la nueva identidad devuelta se almacena en la variable varNewID. Tenga en cuenta el SET NOCOUNT ON y OFF, a ambos lados del comando INSERT, esto es importante, el comando fallará sin ellos.

tags: autonumerico en sql, server sql, sql server 2008, sql server 2005, sql base de datos, ejemplos base datos, sql server

En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por ASP TEAM. Compartimos recursos útiles de buena fe para formar una base de conocimiento en el desarrollo de aplicaciones en ASP Clásico.