Tablas Temporales en Sql Server (#table y @table)
Sintaxis para crear una tabla #.
Create table #paso( id int, nombre varchar(20), apellido varchar(40))Buscar la tabla dentro de los objetos de la db.
Select namePara eliminar la tabla.
from tempdb.sysobjects
where name like ‘%#paso%’
drop table #pasoLas tablas @ son mucho mas flexibles y no es necesario eliminarlas ya que al momento de terminar su ejecución se eliminan automaticamente.
Sintaxis para crear una tabla @.
declare @paso table ( id int, nombre varchar(20), apellido varchar(40))Cuando usar tablas # y tablas @:
- Si usted tiene menos de 100 filas puede utilizar una tabla @, De lo contrario usar una tabla temporal. Esto es porque SQL Server no va a crear las estadísticas sobre la tabla @.
- Si necesita crear índices entonces debe utilizar una tabla temporal #.
Adicional escribo un ejemplo de la utilizacion de este codigo:
DECLARE @Temp TABLE(ID INT)
DECLARE @Int INT,
@InnerInt INT
SELECT @Int = 1,
@InnerInt = 1
WHILE @Int < 2
BEGIN
WHILE @InnerInt < 10
BEGIN
INSERT INTO @Temp SELECT @InnerInt
SET @InnerInt = @InnerInt + 1
END
SELECT @Int = @Int + 1,
@InnerInt = 1
select * from @Temp
DELETE FROM @Temp
END
GO
DECLARE #Temp TABLE(ID INT)
DECLARE @Int INT,
@InnerInt INT
SELECT @Int = 1,
@InnerInt = 1
WHILE @Int < 2
BEGIN
WHILE @InnerInt < 10
BEGIN
INSERT INTO #Temp SELECT @InnerInt
SET @InnerInt = @InnerInt + 1
END
SELECT @Int = @Int + 1,
@InnerInt = 1
select * from #Temp
TRUNCATE TABLE #Temp
END
No hay comentarios:
Publicar un comentario