martes, 1 de noviembre de 2011

ACTUALIZACIÓN DE UNA TABLA TEMPORAL EN UN PROCEDIMIENTO ALMACENADO

Bueno, acabas de pasar veinte / treinta minutos hasta darse cuenta de que cuando se cambia la definición de una tabla temporal que se utiliza en un procedimientoalmacenado de SQL Server, es necesario eliminar de hecho la tabla temporal antes de que usted puede volver a compilar el procedimiento. Por lo tanto, algo así como:



IF OBJECT_ID(N'tempdb..#tableName', N'U') IS NOT NULL DROP TABLE #tableName;
CREATE TABLE #tableName(
    Key1        INT
,   Description NVARCHAR(255)
)   
/* do stuff with table */



Entonces lo cambia a:



IF OBJECT_ID(N'tempdb..#tableName', N'U') IS NOT NULL DROP TABLE #tableName;
CREATE TABLE #tableName(
    Key1        INT
,   Key2        INT
,   Description NVARCHAR(255)
,   AggAmount   FLOAT
)   
/* do stuff with table referencing agg amount column*/



A continuación, la definición de tabla no se actualiza cuando se cambia en el código sin perder las definiciones almacenadasUsted puede destacar la declaración Drop Table y de ejecución que por sí mismo, y entonces va a recompilar el código.

Simple, pero fácil de equivocarse.

No hay comentarios:

Publicar un comentario