22/01/2011, 16:25
|
| | Fecha de Ingreso: abril-2003 Ubicación: España
Mensajes: 12
Antigüedad: 21 años, 7 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. |