Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/01/2011, 16:25
chispim
 
Fecha de Ingreso: abril-2003
Ubicación: España
Mensajes: 12
Antigüedad: 21 años, 8 meses
Puntos: 0
Tablas temporas y alter table

Hola a todos

Me pasa una cosa curiosa al ejecutar código SQL.

En una consulta SQL estoy creando una tabla temporal, posteriormente inserto valores en ella y luego utilizo ALTER TABLE para crear nuevos campos en la tabla temporal.

El problema viene después de utilizar ALTER TABLE, ya que si intento acceder a los nuevos campos me salta el error de que el campo no es valido.

Para ejecutar la consulta utilizo .NET ExecuteNonQuery.

Si ejecuto la consulta por partes, cada una en la misma conexión pero en diferentes ExecuteNonQuery, no me da problemas. Es decir,

1) Ejecuto primero el código que crea la tabla temporal
2) Inserto los datos en la tabla
3) Ejecuto el código con los ALTER TABLE
4) Accedo a los nuevos campos


¿Sabéis porque si ejecuto todo el código junto da error, pero si lo ejecuto por partes no lo da?

Ejemplo de código, no tiene mucho sentido pero es para que os hagáis una idea:

CREATE TABLE #TablaTemporal
(
Pais int NULL, Nombre int NULL
)

INSERT INTO TablaTemporal
... VALORES

ALTER TABLE #TablaTemporal ADD [InternalID] int NOT NULL IDENTITY (1,1)
ALTER TABLE #TablaTemporal ADD [RsID] int

UPDATE #TablaTemporal
SET RsID = [InternalID]-1+(SELECT isnull(Max (RsID)+1,1) From Paises)

ALTER TABLE #TablaTemporal DROP COLUMN [InternalID]

Gracias de antemano.