Inicio > Transact-SQL > Variables tipo tabla

Variables tipo tabla


Al igual que las variables tipo cursor las de tipo tabla no almacenan un dato simple sino algo más complejo.

La variable tipo tabla es un objeto o mejor dicho un tabla como nosotros las conocemos.

En el siguiente código explico su uso.

— =============================================
— Author:  Ricardo Huaman Suarez
— Create date: 07 01 2010
— =============================================

— Usemos un base de datos con la siguiente tabla

USE [Tu Base de datos]

CREATE TABLE [dbo].[ArchivosTemporales](
[Id_ArchivoTemporal] [int] IDENTITY(1,1) NOT NULL,
[Id_Archivo] [int] NOT NULL CONSTRAINT [DF_ArchivosTemporales_Id_Archivo]  DEFAULT ((0)),
[Id_Artista] [int] NOT NULL CONSTRAINT [DF_ArchivosTemporales_Id_ArtistaImagenes]  DEFAULT ((0)),
[RutaArchivo] [varchar](250) COLLATE Modern_Spanish_CI_AS NOT NULL CONSTRAINT [DF_ArchivosTemporales_RutaArchivo]  DEFAULT (”),
[TamanoArchivo] [decimal](10, 2) NOT NULL CONSTRAINT [DF_ArchivosTemporales_TamanoArchivo]  DEFAULT ((0)),
[Proceso] [int] NOT NULL CONSTRAINT [DF_ArchivosTemporales_Proceso]  DEFAULT ((0)),
[Estado] [varchar](50) COLLATE Modern_Spanish_CI_AS NOT NULL CONSTRAINT [DF_ArchivosTemporales_Estado]  DEFAULT (”),
CONSTRAINT [PK_ArchivosTemporales] PRIMARY KEY CLUSTERED
(
[Id_ArchivoTemporal] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

— Creamos un variable que servira como tabla
DECLARE @TBArchivosTemporales Table
(Id_ArchivoTemporal INT PRIMARY KEY,
Id_Archivo INT,
Id_Artista INT,
RutaArchivo VARCHAR(250),
TamanoArchivo DECIMAL(10,2),
Proceso INT,
Estado VARCHAR(50))

— Varables para recuperar valores
DECLARE @Id_ArchivoTemporal INT
DECLARE @Id_Archivo INT
DECLARE @Id_Artista INT
DECLARE @RutaArchivo VARCHAR(250)
DECLARE @TamanoArchivo DECIMAL(10,2)
DECLARE @Proceso INT
DECLARE @Estado VARCHAR(50)

— Declaramos el cursor
DECLARE @CurArchivosTemporales CURSOR
SET @CurArchivosTemporales = CURSOR FOR
SELECT * FROM ArchivosTemporales

OPEN @CurArchivosTemporales

— Recumeramos el primer registro del cursor
FETCH NEXT FROM @CurArchivosTemporales
INTO @Id_ArchivoTemporal,@Id_Archivo,@Id_Artista,@RutaArchivo,@TamanoArchivo,@Proceso,@Estado

WHILE @@FETCH_SATATUS = 0 — Hacer mientras existan filas
BEGIN
INSERT @TBArchivosTemporales VALUES(@Id_ArchivoTemporal,@Id_Archivo,@Id_Artista,@RutaArchivo,@TamanoArchivo,@Proceso,@Estado)
— Pasamos a la siguiente fila
FETCH NEXT FROM @CurArchivosTemporales
INTO @Id_ArchivoTemporal,@Id_Archivo,@Id_Artista,@RutaArchivo,@TamanoArchivo,@Proceso,@Estado
END

— Liberamos el cursor
DEALLOCATE @CurArchivosTemporales

— Mostramos todo el contenido de la variable tabla
SELECT * FROM @TBArchivosTemporales

Categorías:Transact-SQL
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: