Archivo

Posts Tagged ‘SQL Server’

Webcasts de SQL Server por SQL PASS Venezuela

15/06/2013 Deja un comentario

Hola a todos. Les comento que se ha abierto ya desde hace un tiempo SQL PASS Venezuela – Capítulo Caracas, dicho en sus propias palabras “Comunidad técnica de profesionales de SQL Server ubicada en la ciudad de Caracas, Venezuela…”

Esta comunidad orientada a compartir información y contenido técnico acerca de SQL Server nos trae una programación de webcasts bastante interesantes. Acá les comento algunos:

Fundamentos en el diseño de bases de datos con MS SQL Server 2012 (20/06/2013)

Fundamentos en la aplicación de una Plataforma BI (28/06/2013)

Optimización de aplicaciones de bases de datos OLTP (09/07/2013)

Escribiendo código T-SQL eficientemente (18/07/2013)

Optimizando consultas utilizando estadísticas (30/07/2013)

Puedes registrarte para este y otros más en el siguiente enlace:

https://www311.livemeeting.com/lrs/8000181573/Registration.aspx?pageName=1zlx4r1343rzgdl6

Espero le saquen provecho.

Nos leemos,

 

Acerca de estos anuncios
Categorías:Actividades Etiquetas: , ,

Usando el template browser en SQL Server Management Studio para 2012

06/05/2013 1 comentario

Ya desde hace algunas ediciones anteriores hasta 2012 el SQL Server Management Studio trae el template browser, una librería de plantillas con diferentes categorías listas para usar. Esta librería contiene plantillas de scripts para realizar tareas comunes sobre bases de datos y los objetos asociados.

Aunque ha estado presente y muchas veces hemos obviado esta librería, en este post rescato un poco su funcionamiento y cómo sacarle provecho. Leer más…

Categorías:Scripting Etiquetas: , , ,

Evento presencial: Innovación 2012

19/11/2012 Deja un comentario

Hola, los invito a participar en el evento Innovación 2012 que se estará llevando a cabo el día Martes 27 de Noviembre de 2013 en la Torre Corp Banca, Caracas – Venezuela. En este evento se estará mostrando las diferentes tecnologías que cuentan con nuevas versiones así como el ritmo tecnológico de las mismas.

En este evento tendré la oportunidad de hablar un poco acerca Sql Server 2012 y Big Data.

Innovación 2012

 

Los espero.

Saludos,

Categorías:Actividades Etiquetas:

Comenzando con Sql Server 2012

03/06/2012 2 comentarios

Ha llegado el momento de actualizarnos, luego de trabajar un buen tiempo (y aún con proyectos en marcha) con Sql Server 2008 R2. Desde el 23 de Enero de 2012 está disponible un nuevo training kit para comenzar a estudiar y aprender de forma ordenada todo lo nuevo que trae Sql Server 2012.

Este training kit inicialmente orientado a desarrolladores está disponible en el sitio de descargas de microsoft.com (o haciendo clic AQUI).

Para revisar el contenido de este training kit, puedes ingresar en los siguientes enlaces:
SQL Server 2012 Developer Training Kit Content (en-US)
También puedes guiarte por esta lista que hace mención a cada parte individual (contenido completo en AQUI):

¿Quieres certificarte?

La ruta de certificación para Sql Server ha cambiado, la nueva estructura para Sql Server 2012 consta de las siguientes etapas:

  1. Microsoft Certified Solutions Associate, conformado por los siguientes exámenes:
    1. Exámen 70-461: Querying Microsoft Sql Server 2012
    2. Exámen 70-462: Administering a Microsoft Sql Server 2012 database
    3. Exámen 70-463: Implementing Data Wharehouses with Microsoft Sql Server 2012
  2. Microsoft Certified Solutions Expert – Data Platform, conformado por las siguientes certificaciones y exámenes:
    1. Microsoft Certified Solutions Associate
    2. Exámen 70-464: Developing Microsoft Sql Server 2012 databases
    3. Exámen 70-465: Designing database solutions for Microsoft Sql Server 2012
  3. Microsoft Certified Solutions Expert – Business Intelligence, conformado por las siguientes certificaciones y exámenes:
    1. Microsoft Certified Solutions Associate
    2. Exámen 70-466: Implementing data models and reports with Microsoft Sql Server 2012
    3. Exámen 70-467: Designing Business Intelligence solutions with Microsoft Sql Server 2012

Espero esta información les sirva de referencia… luego iré colocando nuevos posts acerca del procesos de aprendizaje a Sql Server 2012.

Nos leemos,

Creando paquetes de SSIS con .NET – Creando Execute Package Task y Execute Process Task

26/01/2012 9 comentarios

Se pueden crear paquetes de SQL Server Integration Services (SSIS) programáticamente con .NET, haciendo uso de las librerías que incluye SQL Server 2008. En este post se explica cómo crear Execute Package Task y Execute Process Task.

Serie Creando paquetes de SSIS con .NET

Continuando esta serie y partiendo del post inicial donde agregamos los elementos basicos para crear un paquete de SSIS con C#/.NET (puedes guiarte con el primer post de esta serie – Agregando elementos básicos), vamos a agregar un Execute Package Task y un Execute Process Task.

Execute Package Task

Este componente nos permite ejecutar un paquete de SSIS (.dtsx) desde otro paquete. Este tipo de componente nos puede ayudar para orquestar la ejecución de muchas paquetes y combinarlo con otras operaciones.

Para crear este componente utilizaremos el siguiente código:

//Para este componente se necesita un file connection, en este ejemplo
//se parte de que el componente ya está creado y se llama dtsx.Origen
//En posts anteriores de esta serie se explica cómo crearlo por código
Executable ExePKGexe = pkg.Executables.Add("STOCK:ExecutePackageTask");
TaskHost exePKG = ExePKGexe as TaskHost;
exePKG.Name = "Ejecutar un DTSX";
exePKG.Properties["Connection"].SetValue(exePKG, "dtsx.Origen");

El código es bastante corto ya que sólo debemos definir la conexión que usará este componente debido a que el objeto de conexión es el que contiene la información del paquete a ejecutar.

Execute Process Task

Este componente nos permite ejecutar algún proceso con o sin parámetros desde un paquete de SSIS. Para este ejemplo vamos a ejecutar Powershell.exe con algunos parámetros. Si lo construimos gráficamente sería algo como:

Para crear este componente utilizaremos el siguiente código:

Executable exeProTaskexe = pkg.Executables.Add("STOCK:ExecuteProcessTask");
TaskHost exeProTask = exeProTaskexe as TaskHost;
exeProTask.Name = "Ejecutar Powershell con parámetros";
exeProTask.Properties["Executable"].SetValue(exeProTask, @"C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe");
exeProTask.Properties["Arguments"].SetValue(exeProTask, "-command \"get-process;return 0;\"");
exeProTask.Properties["SuccessValue"].SetValue(exeProTask, 0);
exeProTask.Properties["WindowStyle"].SetValue(exeProTask, 0);

Seguiré indagando en cómo crear más componentes para un paquete SSIS desde C#/.NET.

Nos leemos,

Categorías:.NET Etiquetas: , , , ,

Creando paquetes de SSIS con .NET – Creando SQL Task y File System Task

26/01/2012 4 comentarios

Se pueden crear paquetes de SQL Server Integration Services (SSIS) programáticamente con .NET, haciendo uso de las librerías que incluye SQL Server 2008. En este post se explica cómo crear SQL Task y File System Task.

Serie Creando paquetes de SSIS con .NET

Continuando esta serie y partiendo del post inicial donde agregamos los elementos basicos para crear un paquete de SSIS con C#/.NET (puedes guiarte con el primer post de esta serie – Agregando elementos básicos), vamos a agregar un SQL Task y un File System Task.

SQL Task

Este componente nos permite ejecutar sentencias SQL con ciertas caracteristicas y realizar algunas acciones con el resultado. Cuando lo creamos de forma grafica, vemos un formulario como el siguiente:

Para crear este componente utilizaremos el siguiente codigo:

Executable SQLTaskExe = pkg.Executables.Add("STOCK:SQLTask");

TaskHost SQLTaskHost = SQLTaskExe as TaskHost;
SQLTaskHost.Name = "Vaciado de tabla";
SQLTaskHost.Properties["Connection"].SetValue(SQLTaskHost, pkg.Connections["SQL.Destino"].ID);
SQLTaskHost.Properties["SqlStatementSource"].SetValue(SQLTaskHost, "truncate table MyTable");

File System Task

Este componente nos permite realizar operaciones con archivos y directorios desde SSIS. Con este componente podemos crear, copiar y mover archivos/directorios. Si configuramos el componente en el entorno gráfico veríamos algo como esto:

Para crear este componente utilizaremos el siguiente codigo:

Executable FSTexe = pkg.Executables.Add("STOCK:FileSystemTask");
TaskHost FST = FSTexe as TaskHost;
FST.Name = "Mover archivo XLSX";
FST.Properties["Destination"].SetValue(FST, "xlsx.Destino");
FST.Properties["Source"].SetValue(FST, "xlsx.Origen");
FST.Properties["Description"].SetValue(FST, "Componente para copiar archivo");
FST.Properties["OperationName"].SetValue(FST, "CopyFile");
FST.Properties["OverwriteDestinationFile"].SetValue(FST, true);

En la siguiente entrega estaré mostrando un poco cómo crear Execute Package Task y Execute Process Task.

Nos leemos,

Categorías:.NET Etiquetas: , , , ,

Creando paquetes de SSIS con .NET – Creando data flow Task y elementos internos

03/01/2012 17 comentarios

Se pueden crear paquetes de SQL Server Integration Services (SSIS) programáticamente con .NET, haciendo uso de las librerías que incluye SQL Server 2008. En este post se explica cómo crear data flow task y sus elementos internos.

Serie Creando paquetes de SSIS con .NET

Una vez que agregamos los elementos básicos como creación del paquete y los objetos de conexión, podemos seguir agregando nuevos elementos al paquete que estamos creando usando C# y .NET (puedes guiarte con el primer post de esta serie - Agregando elementos básicos)

Tomaremos como referencia los elementos creados en el primer post de esta serie, para seguir agregándole objetos al paquete que se quiere crear. Para este post crearemos un data flow y algunos elementos internos, tomando como ejemplo un escenario en donde tomaremos data de un archivo de texto y la pasaremos a una tabla en SQL Server.

Creando Dataflow Task

El dataflow task es el objeto que contendrá todo los flujos de trabajo para trabajar con los datos. Para crear el objeto Dataflow Task utilizaremos el siguiente código:

Executable DataFlowExe = pkg.Executables.Add("STOCK:PipelineTask");
TaskHost thMainPipe = DataFlowExe as TaskHost;
thMainPipe.Name = "Carga de tabla";
MainPipe dfTask = thMainPipe.InnerObject as MainPipe;
PrecedenceConstraint constraint = pkg.PrecedenceConstraints.Add(SQLTaskExe, DataFlowExe);

Ya teniendo creado el dataflow task, podemos agregar los objetos internos que conforman el flujo de trabajo a construir.

Creando Flat File Source

Este objeto es que nos permite conectarnos con el origen de los datos para extraer los registros, este origen de datos debe ser un objeto de conexión de tipo Flat File en el cual se define el comportamiento de la información dentro del archivo.

Para crear este tipo de objetos usamos el siguiente código:

IDTSComponentMetaData100 ffSource = dfTask.ComponentMetaDataCollection.New();
ffSource.ComponentClassID = "DTSAdapter.FlatFileSource.2";
ffSource.Name = "FlatFileSource";
ffSource.Description = "Flat file source";
CManagedComponentWrapper ffSrcComponent = ffSource.Instantiate();
ffSrcComponent.ProvideComponentProperties();
ffSrcComponent.SetComponentProperty("RetainNulls", true);

//Asociamos al objeto de conexión
if (ffSource.RuntimeConnectionCollection.Count > 0)
{
ffSource.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.GetExtendedInterface(pkg.Connections["TXT.Archivo"]);
ffSource.RuntimeConnectionCollection[0].ConnectionManagerID = pkg.Connections["TXT.Archivo"].ID;
}
ffSrcComponent.AcquireConnections(null);
ffSrcComponent.ReinitializeMetaData();
ffSrcComponent.ReleaseConnections();

//Opcional, podemos definir el comportamiento de los campos al momento de ocurrir un error o un truncamiento de los datos
for (int i = 0; i < ffSource.OutputCollection[0].OutputColumnCollection.Count; i++)
{
ffSource.OutputCollection[0].OutputColumnCollection[i].ErrorRowDisposition = DTSRowDisposition.RD_RedirectRow;
ffSource.OutputCollection[0].OutputColumnCollection[i].TruncationRowDisposition = DTSRowDisposition.RD_RedirectRow;
}

Creando SQL Destination

El siguiente paso es crear el destino de los datos, para este caso es una tabla de SQL Server. Para crear este objeto y definir su comportamiento usamos el siguiente código:

IDTSComponentMetaData100 SQLDestination = dfTask.ComponentMetaDataCollection.New();
SQLDestination.ComponentClassID = "DTSAdapter.OLEDBDestination.2";
SQLDestination.Name = "OLEDBDestination";
SQLDestination.Description = "SQL destination";
CManagedComponentWrapper SQLDestComponent = SQLDestination.Instantiate();
SQLDestComponent.ProvideComponentProperties();

//Asociamos con el objeto de conexión de SQL Server
if (SQLDestination.RuntimeConnectionCollection.Count > 0)
{
SQLDestination.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.GetExtendedInterface(pkg.Connections["OLEDB"]);
SQLDestination.RuntimeConnectionCollection[0].ConnectionManagerID = pkg.Connections["OLEDB"].ID;
}

//Configuramos algunas propiedades del objeto
SQLDestComponent.SetComponentProperty("AccessMode", 3); //Equivale a: Table or view - fast load
SQLDestComponent.SetComponentProperty("OpenRowset", "NombreTabla");
SQLDestComponent.SetComponentProperty("FastLoadOptions", "TABLOCK");
SQLDestComponent.AcquireConnections(null);

//Reinicializamos la metadata del objeto
SQLDestComponent.ReinitializeMetaData();

Conexión de ambos objetos

Finalmente debemos unir ambos objetos, o mejor dicho, trazar por código la conexión de los objetos mapeando la salida de uno con la entrada del otro.

Para realizar esta actividad aplicamos el siguiente código:

//Agregamos el conector
IDTSPath100 path = dfTask.PathCollection.New();
path.AttachPathAndPropagateNotifications(ffSource.OutputCollection[0], SQLDestination.InputCollection[0]);
// Obtenemos el input por defecto del objeto.
IDTSInput100 input = SQLDestination.InputCollection[0];
IDTSVirtualInput100 vInput = input.GetVirtualInput();

foreach (IDTSVirtualInputColumn100 vColumn in vInput.VirtualInputColumnCollection)
{
// Llamamos al método SetUsageType del objeto destino para agregar cada virtual input column como un input column.
SQLDestComponent.SetUsageType(input.ID, vInput, vColumn.LineageID, DTSUsageType.UT_READWRITE);
}
foreach (IDTSInputColumn100 inColumn in SQLDestination.InputCollection[0].InputColumnCollection)
{
// creamos el mapeo
IDTSExternalMetadataColumn100 exColumn = SQLDestination.InputCollection[0].ExternalMetadataColumnCollection[inColumn.Name];
exColumn.Name = inColumn.Name;
SQLDestComponent.MapInputColumn(SQLDestination.InputCollection[0].ID, inColumn.ID, exColumn.ID);
}
SQLDestComponent.ReleaseConnections();

De esta forma completamos el flujo de trabajo que procesaría los registros contenidos en un archivo de texto para enviarlos a una tabla de SQL Server. En la siguiente entrega estaré mostrando un poco cómo crear SQL Task y File System Task.

Nos leemos,

Categorías:.NET Etiquetas: , , , ,
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.449 seguidores