Entradas

Mostrando entradas de octubre, 2015

Vectores o matrices en SQL Server

Imagen
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

Apuntes sobre cursores y recomendaciones en SQL Server

En SQL Server los cursores son muy lentos. Prácticamente nunca es recomendable y es bueno buscar otras alternativas de acuerdo a la necesidad. De forma general se podría decir que: Si la consulta es veloz y toma pocos segundos y no va a cambiar esa velocidad a medida que aumente el tamaño la base de datos (al menos no de forma repentina), se podría mantener los cursores. Sin embargo, si usted cree que los datos que manejan los cursores van a aumentar a miles o peor a millones de filas, vale la pena reemplazar el cursor. Los cursores en general son utilizados por gente que se siente cómodo con el manejo secuencial, pero el cursor en sí es lento. Bloquea datos y consume muchos recursos. Si no tiene otra alternativa a cursores, recomendamos usar la opción FAST_FORWARD (si es aplicable) y READ_ONLY para optimizar los cursores. Alternativas a cursores   Consultas recursivas  Sentencias WHILE (si se usan grupos de datos, si se usan datos de 1 en 1 es pe

Paso de parámetros vía linea de comandos en SSIS

Imagen
En SQL Server Integration Services (SSIS) , mucha gente aprende, pero le cuesta llegar a poder recibir parámetros. En este ejemplo voy a copiar datos de una tabla origen a una tabla destino especificando el ID como parámetro. Luego voy a llamar al paquete desde el cmd (la línea de comandos y pasarle el parámetro). Para este ejemplo, estoy usando la base de datos adventureworks , pero usted puede adaptar el ejemplo a cualquier tabla de cualquier base de datos.  El paquete es un simple Data Flow y dentro del Data Flow se tiene un OLE DB Source y un OLE DB Destination: Vamos a tener una variable con el valor del ID a especificar y la otra variable contendrá la expresión con la sentencia.. La expresión adjuntará la consulta a un parámetro. En este caso la consulta es la siguiente: "SELECT [BusinessEntityID]       ,[NationalIDNumber]        FROM [HumanResources].[Employee]  where [BusinessEntityID]= "+ @[User::Variable1] Donde User Var

6to año que Microsoft me nombra Microsoft Most Valuable Professional

Imagen
A mi linda esposita y a mi hijita por apoyarme siempre en todos mis proyectos de Microsoft. Quiero agradecer a mis padres por haberme dado ese apoyo incondicional para estudiar sistemas y apoyarme en el fascinante mundo de las computadoras. A Microsoft por confiar en mí y nombrarme por 6to año consecutivo un Profesional más valioso. A Jorge Lopez, el dueño de Jalasoft por definir mi área de especialización que sería el área que me daría tantas satisfacciones por el resto de mi carrera. Comencé SQL Server gracias a él y no me separo de esa tecnología nunca. El programa de MVP incluye varios regalos: Licencias a miles de productos Microsoft como ser Windows, SQL Server, Exchange, Office, SharePoint y varios otros miles de productos. Permite manejar a Visual Studio Online. Se tiene permiso para manejar Azure (la nube). Se puede crear máquinas virtuales, sitios web, se pueden subir aplicaciones móviles, reportes, Machine Learning y mucho más. Pluralinsight