Duda con la variable @@SPID

21/01/2004 - 14:32 por [-H-] | Informe spam
Si trabajo con SQL Server desde una aplicación en modo
conexión-desconexión (me conecto a la BD cuando lanzo una
instrucción a la misma, y acto seguido me desconecto,
hasta nueva instrucción), el valor de la variable @@SPID
será el mismo en cada conexión que haga a la base de datos
mientras esa aplicación esté activa?
Si la respuesta es si, pq ocurre eso?
Los libros de pantalla de SQL Server no aclaran mucho a
ese respecto...
Muchas gracias.
 

Leer las respuestas

#1 Eladio Rincón
21/01/2004 - 15:05 | Informe spam
Hola,

El valor @@SPID es único para cada conexión; cada vez que conectas al
servidor, se asigna un número único a cada conexión; un mismo número puede
ser "reutilizado" si tienes habilitado el "pool de conexiones" y si en el
momento en que conectas el valor de @@SPID estaba libre.

Por ejemplo:
spid libres: 1,2,3,4
conecta 1 --> te devuelve spid1,
conecta 2 --> spid 2,
desconecta 1 --> se libera spid1.
conecta 1 --> como está libre 1,3,4 te asigna spid 1; lo cual no quiere
decir que se "reutilice" el contexto de la conexión.

Sin embargo, si tienes establecido connection pooling (y te ajustas a los
requisitos del pooling para reutilizar conexiones), reutilizará la conexión
haciendo antes una limpieza (a menos que especifiques lo contrario en la
cadena de conexión: Connection Reset=false); la limpieza consiste es limpiar
variables de estado, tablas temporales locales de la conexión, etc.

Si quieres leer algo sobre el connection pooling, te puede servir este link:
http://eladio.europe.webmatrixhosti...ion­O_
NET&Articulo1.xml

Saludos,

Eladio Rincón.

"[-H-]" escribió en el mensaje
news:18a901c3e022$f547f730$
Si trabajo con SQL Server desde una aplicación en modo
conexión-desconexión (me conecto a la BD cuando lanzo una
instrucción a la misma, y acto seguido me desconecto,
hasta nueva instrucción), el valor de la variable @@SPID
será el mismo en cada conexión que haga a la base de datos
mientras esa aplicación esté activa?
Si la respuesta es si, pq ocurre eso?
Los libros de pantalla de SQL Server no aclaran mucho a
ese respecto...
Muchas gracias.

Preguntas similares