Vectores o matrices en SQL Server
Si bien en SQL Server no hay vectores, hay una alternativa denominada parámetros de valores de tabla.
Básicamente es una variable que se comporta como tabla en SQL Server y que acepta insert, delete, update como una tabla normal, pero es una variable.
Para crearla, se define el tipo de dato:
CREATE TYPE Departamento AS TABLE
(
ID INT, Nombre VARCHAR(30)
);
GO
Estamos creando una variable llamada departamento que es una tabla con los campos ID y Nombre.
El resto es declarar la nueva variable creada:
DECLARE @miDepa AS Departamento
Y se puede insertar valores en esta variable:
INSERT INTO @miDepa VALUES
(1,'IT'),
(2,'Ventas'),
(3,'Finanzas')
O hacer un select:
SELECT * FROM @miDepa
Y ahora como llamo a esta variable en SQL Server?
El procedimiento almacenado recibe como entrada una variable del tipo tabla. El resto es llenar la tabla X.
CREATE PROCEDURE llenatabla
@table departamento READONLY
AS
INSERT INTO dbo.Departamento
SELECT ID,Nombre
FROM @table
Finalmente es simplemente pasar el parámetro al procedimiento almacenado.
EXEC dbo.llenatabla @miDepa
Básicamente es una variable que se comporta como tabla en SQL Server y que acepta insert, delete, update como una tabla normal, pero es una variable.
Para crearla, se define el tipo de dato:
CREATE TYPE Departamento AS TABLE
(
ID INT, Nombre VARCHAR(30)
);
GO
Estamos creando una variable llamada departamento que es una tabla con los campos ID y Nombre.
El resto es declarar la nueva variable creada:
DECLARE @miDepa AS Departamento
Y se puede insertar valores en esta variable:
INSERT INTO @miDepa VALUES
(1,'IT'),
(2,'Ventas'),
(3,'Finanzas')
O hacer un select:
SELECT * FROM @miDepa
Y ahora como llamo a esta variable en SQL Server?
El procedimiento almacenado recibe como entrada una variable del tipo tabla. El resto es llenar la tabla X.
CREATE PROCEDURE llenatabla
@table departamento READONLY
AS
INSERT INTO dbo.Departamento
SELECT ID,Nombre
FROM @table
Finalmente es simplemente pasar el parámetro al procedimiento almacenado.
EXEC dbo.llenatabla @miDepa
Sobre el autor
Daniel Calbimonte es un apasionado en la tecnología. Ha sido programador, project manager, documentador, ingeniero de software, experto en soporte técnico, YouTuber, escritor de artículos técnicos, blogger. Docente de tecnologías Microsoft, Developer de BI, DBA, conferencista. Actualmente da consultorías de software.
Whatsapp: +59175502310
Email: calbimonte.daniel@gmail.com
Imágenes
Bing Image Creator
Comentarios
Publicar un comentario