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 /
- 1210 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
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.