Tablas temporales en SQL Server

25/02/2005 - 10:19 por Juan Pedro Gonzalez | Informe spam
Hola,

Se me ha presentado un pequeño problema de desarrollo, os lo explico a
continuacion para ver si alguien me puede hechar un cable.

En un formulario de VB .NET tengo una serie de datos que debe introducirse
en una base de datos de SQL Server (en tres tablas). Me gustaria evitar la
corrupcion de los datos en el SQL Server, y existen problemas con la red.
Para solucionar este problema se me ocurrio emplear XML, pero algunos de los
datos son strings, y podrian enviar comillas produciendo errores en el
XML... Por ello se me ocurrio crear un procedimiento que generase dos tablas
temporales (#primera y #segunda). Desde VB .NET trato de introducir los
datos en dichas tablas temporales y una vez que todo ha sido realizado sin
errores llamo a un segundo procedimiento almacenado que copiara los datos de
dichas tablas a las tablas reales.

El problema se presenta con los INSERT del VB .NET, ya que cuando llamo a
#primera me dice que el nombre de la tabla no es valido. ¿Como se emplea una
tabla temporal desde VB .NET?

Tambien me ha surgido otra duda: ¿Donde puedo ver la tabla temporal?
Especialmente para poder observar si la tabla se ha generado
correctamente... Yo pensaba que era en Tempdb pero no se puede ver nada...

Y ya puestos a preguntar... Los usuario se conectan a la base de datos
empleando autenticacion SQL Server, y acceden a la base de datos a traves de
un Rol de aplicacion. La Tabla temporal se genera para su login de usuario o
para el rol de aplicacion? Supongo que sera para su login de usuario, ya que
es el que contendra la informacion de la sesion, y aparte de eso, si acaba
en TempDB dudo que coja el rol de aplicacion de la otra base de datos.

Tambien me pregunto si la tabla temporal solo puede ser accedida por el
usuario que la ha creado (No es una tabla temporal global), o si se deberia
aplicar algun tipo de seguridad adicional para evitar que otro usuario la
consulte.

Un saludo
 

Leer las respuestas

#1 A.Poblacion
25/02/2005 - 11:17 | Informe spam
"Juan Pedro Gonzalez" wrote in message
news:%
[...] un procedimiento que generase dos tablas
temporales (#primera y #segunda). Desde VB .NET trato de introducir los
datos en dichas tablas temporales y una vez que todo ha sido realizado sin
errores llamo a un segundo procedimiento almacenado que copiara los datos


de
dichas tablas a las tablas reales.

El problema se presenta con los INSERT del VB .NET, ya que cuando llamo a
#primera me dice que el nombre de la tabla no es valido. ¿Como se emplea


una
tabla temporal desde VB .NET?



¿Después de crear las tablas, haces el Insert con la misma conexión, sin
cerrarla entre medias? Lo digo porque las tablas temporales dependen de la
conexión, y al cerrarla se borran. Si queres que sean "globales", puedes
poner "##Tabla", pero ojo, que entonces son comunes a todos los usuarios.

Preguntas similares