2011-01-18 23 views
5

aquí está la situación:tabla temporal usuage en un entorno multiusuario

tengo un informe de SSRS que utiliza un SP como un conjunto de datos. El SP crea una tabla de temperatura, inserta un conjunto de datos en ella y la selecciona de nuevo para que informe el SSRS. Muy claro.

Pregunta:

Si varios usuarios ejecutan el informe con diferentes parámetros seleccionados, será la tabla temporal creada por el SP colisionar en el tempdb y potencialmente no devuelve el conjunto de datos esperado?

Respuesta

18

Lo más probable es que no. Si la tabla temporal se define como #temp o @temp, entonces está seguro, ya que a ese tipo de tablas temporales solo se puede acceder mediante la conexión creadora, y solo durarán mientras dure la ejecución del procedimiento almacenado. Sin embargo, si está utilizando tablas ##temp (dos signos de "libra"), mientras que esas tablas solo duran mientras se ejecuta el procedimiento almacenado de creación, están expuestas y accesibles por todas las conexiones a esa instancia de SQL.

Las probabilidades son buenas de que no esté usando tablas ##, por lo que probablemente esté seguro.

+0

Awesome guys. Apreciar las respuestas rápidas. – tmercer

+0

Análisis sólido, PK. +1 de mi parte – Vinnie

3

una tabla temporal con un solo # es una tabla temporal local y su alcance se limita a la sesión que lo creó, por lo que las colisiones no debería ser un problema.