Está usted en Indice > Construcción > Lenguajes > SQL > Lecciones y Paso a Paso > Tablas temporales en el SQL Server
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Tablas temporales en el SQL Server (3)

Metodo 1: Tablas temporales

declare @st datetime
SET @st =getdate()
CREATE TABLE #Actualizar (OrderId int, ShipVia int, Freight money)
INSERT INTO #Actualizar SELECT OrderID, ShipVia, Freight
FROM Orders WHERE ShipVia=2 AND ShippedDate IS NULL
UPDATE Orders SET ShipVia=3, Freight=10 WHERE OrderID IN
(SELECT OrderID FROM #Actualizar)DROP TABLE #Actualizar
PRINT 'Operacion completada en: ' + RTRIM(cast(datediff(ms,@st,getdate()) as char(10)))
+ ' milisegundos'

Y obtenemos como resultado:

(11 filas afectadas)
(11 filas afectadas)
Operacion completada en: 140 milisegundos

Metodo 1: Variables tipo Tabla

DECLARE @st datetime
SET @st =getdate()
DECLARE @Actualizar TABLE(OrderId int, ShipVia int, Freight money)
INSERT INTO @Actualizar SELECT OrderID, ShipVia, Freight
FROM Orders WHERE ShipVia=2 AND ShippedDate IS NULL
UPDATE Orders SET ShipVia=3, Freight=10 WHERE OrderID IN
(SELECT OrderID FROM @Actualizar)
PRINT 'Operacion completada en: ' + rtrim(cast(datediff(ms,@st,getdate()) AS char(10)))
+ ' milisegundos'

Y en este caso el resultado es:

(11 filas afectadas)
(11 filas afectadas)
Operacion completada en: 73 milisegundos

Metodo 1: Sin Tablas temporales

DECLARE @st datetime
SET @st =getdate()
UPDATE Orders SET ShipVia=3, Freight=10 WHERE OrderID IN
(SELECT OrderID FROM Orders WHERE ShipVia=2 AND ShippedDate IS NULL)
PRINT 'Operacion completada en: ' + rtrim(cast(datediff(ms,@st,getdate()) AS char(10)))
+ ' milisegundos'

Y por último obtenemos:

(11 filas afectadas)
Operacion completada en: 50 milisegundos

Desde luego este ejemplo no es significativo, y en cada caso hay que estudiar la situación y comparar los resultados obtenidos en un entorno de trabajo para saber cual es la mejor opción, pero de todos modos espero que esto os sirva al menos para conocer un poco mejor a las "tablas temporales".




Autor: Cesar Manivesa
http://www.programacion.net/articulo/man_tablastemp/

Usuarios que han visto este tema también han visto...

- FULL-TEXT Search en SQL Server
- Funciones para el manejo de grupos de filas con SQL
- Subconsultas en SQL
- Consultas con Parámetros en SQL
- Gestión de vistas en SQL


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 22-11-2008 a las 16:27:27