Obtener ID autonumerico insertado en SQL Server con ASP clásico
Código ASP clásico
- Por Programador ASP clásico /
- 07/08/2012 @ 14:24:14 /
- 1010 visitas
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