Guía de implementación Softland en SQL Server 2012. Versión 1.0



Documentos relacionados
Consultas con combinaciones

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Manual AGENDA DE RESPALDO

CONSULTAS BASICAS EN SQL SERVER

Comisión Nacional de Bancos y Seguros

Microsoft SQL Server 2005

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Figura 4.1 Clasificación de los lenguajes de bases de datos

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Curso Excel Básico - Intermedio

Actualización de versión a Bizagi 10.x

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra

Curso Online de Microsoft

Acronis License Server. Guía del usuario

LABORATORIO 8. Optimización de Consultas SQL a través de herramientas del SMBD Oracle

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

SIIGO Pyme. Informes de Saldos y Movimientos de Inventarios. Cartilla I

Control de Cambios. Combo Estela ADSL 0108 ver 1.1 Mayo de 2010

Mesa de Ayuda Interna

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

Operación Microsoft Access 97

LiLa Portal Guía para profesores

Manual de Usuario. Sistema Municipal de Facturación Electrónica. Página 1 de 26

Curso de PHP con MySQL Gratis

Manual de ACCESS Intermedio

SQL (Structured Query Language)

1. DML. Las subconsultas

Microsoft Access proporciona dos métodos para crear una Base de datos.

Programa de Ayuda EMCS Instalación Versión SQL Server Versión Marzo 2010

MIGRACIÓN NEXUS 8 A A3ERP 9

NOTAS TÉCNICAS SOBRE EL SIT: Modelo Declaración 347. Notas previas...2 Obtención del Listado...2 Comunicados...3 Soporte Magnético...

COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC

Guía para Upgrade a 3.05 SQL Server. Versión del documento revisada

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Implementando un ERP La Gestión del Cambio

28.- Manejo de los Feriados

TUTORIAL OPERADOR CUBE

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Base de datos en Excel

Guía Rápida de Inicio

Manual de instalación Actualizador masivo de Stocks y Precios

El proceso de Instalación de Microsoft SQL Server 2008

Manual del Investigador de OpenClinica

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Guía para Upgrade a 3.1 SQL Server

Conceptos Generales en Joomla

INSTALACIÓN Y REGISTRO

Mantenimiento Limpieza

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I

Elementos requeridos para crearlos (ejemplo: el compilador)

Manual PARA EL ADMINISTRADOR DE LA WEB DE PRÁCTICAS PRE PROFESIONALES Y PASANTÍAS

Guía de Apoyo Project Professional

Comisión Nacional de Bancos y Seguros

Manual de usuario administrador. Correo Exchange Administrado

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

1

Script de pruebas para generar timbre fiscal digital

Introducción a PostgreSQL con PHP

Manual de Instalación. Sistema FECU S.A.

Resumen. Funcionamiento. Advertencia

Visor de presupuestos en Android

Novedades en Gestión de Expedientes (9 junio 2015)

El cuadro de mando contiene indicadores e informes que deben actualizarse a partir de la información de su sistema informático.

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

- A continuación, se nos abrirá la siguiente ventana pidiendo contraseña, que el cliente haya especificado al instalar Wingest 7

WINDOWS : COPIAS DE SEGURIDAD

NOTAS TÉCNICAS SOBRE EL SIT: Conceptos contables

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Creación y administración de grupos locales

MANUAL DE INSTALACIÓN

A continuación enlistamos estos pasos y seguido a ello describimos detalladamente cada uno de ellos:

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Procedimiento para realizar el proceso de cierre anual (Ajuste anual) en CONTPAQ i Nóminas.

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Introducción. Contabilidad y Estados Financieros

Manual de Usuario Sistema SIGESP 1 de 15 Módulo: Sistema de Seguridad Rev. Nº 00. Revisado Por : Firma: Elaborado Por: ADS. Teresa Andrade Firma

La explicación la haré con un ejemplo de cobro por $ más el I.V.A. $16.00

CURSO INSTALACION E IMPLEMENTACION ALOJA SOFTWARE HOTEL MODULO 04: Reservas- Planning- Cuentas del Hotel [1]

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

MANUAL COPIAS DE SEGURIDAD

MANUAL WINDOWS MOVIE MAKER. Concurso de Gipuzkoa

CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Facturación - Software de facturación para profesionales y autónomos.

Sistema de Nómina de Operadores (SISNOP)

Manual del Alumno de la plataforma de e-learning.

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

Procedimiento para realizar la configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x

Selección de los puntos de montaje

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

ing Solution La forma más efectiva de llegar a sus clientes.

La ventana de Microsoft Excel

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS

Cierre de Ejercicios Fiscales en el Sistema ASPEL-COI 4.0

Manual de usuario del área de HelpDesk

Tutorial: Primeros Pasos con Subversion

Transcripción:

Guía de implementación Softland en SQL Server 2012 Versión 1.0

Tabla de Contenido 1. INTRODUCCIÓN... 2 2. MIGRACIÓN A SQL SERVER 2012... 2 2.1 Ausencia de Compatibilidad con versiones anteriores... 2 3. CAMBIO GENERAL COMPORTAMIENTO DE LAS SENTENCIAS DE JOIN... 2 3.1 Introducción al Join de Tablas... 2 3.2 Outer Join... 4 3.3 Diferencias en el Outer Join... 5 3.4 Resumen... 8 4. MÓDULO DE REPORTES... 9 4.1 Modo de Compatibilidad... 9 4.2 Filtrar antes de realizar el Join... 9 4.3 Prueba y Validación de la instalación... 10

Guía de implementación 1. INTRODUCCIÓN Este documento describe las nuevas características de implementación de las consultas de Outer Join de SQL Server 2012 y cómo deben ser implementadas desde Softland para obtener los mismos datos. También explica cómo deben ser utilizados desde el módulo del Generador de Reportes para obtener resultados consistentes con las implementaciones existentes en versiones de SQL Server 2008 R2 y previas. 2. MIGRACIÓN A SQL SERVER 2012 2.1 Ausencia de Compatibilidad con versiones anteriores SQL Server 2012 ya no soporta el modo de compatibilidad de base de datos con SQL Server 2000 por lo que ya no se reconoce la sintaxis clásica de Outer Join *=, la misma debe ser reemplazada por la cláusula ANSI LEFT OUTER JOIN pero existen cambios de criterio de cómo se procesa la información que la consulta devuelve. Este cambio de comportamiento debe ser revisado en todos los puntos donde se han escrito implementaciones que involucran sentencias SQL de usuario como ser Reportes de Usuario, Jobs del administrador de Tareas, Controllers de usuario, y cualquier otro script SQL que se pueda estar ejecutando en la base de datos. 3. CAMBIO GENERAL COMPORTAMIENTO DE LAS SENTENCIAS DE JOIN 3.1 Introducción al Join de Tablas Suponga que tenemos dos tablas, EMPLEADO y FAMILIA EMPLEADO CODIGO NOMBRE 1 Juan Perez 2 Ernesto Alvarez 3 Francisco Gonzalez 4 Nahuel Testa 5 Andrea Navarro 6 Ines Moreno 7 Carman Lopez 8 German Bringas 9 Andrea Pizzini

FAMILIA CODEMP FAMILIAR RELACION EDAD 1 Ernestina Perez HIJO 7 1 Morena Perez HIJO 10 1 Silvia Gonzalez CONYUGUE 41 3 Andrea Lopez CONYUGUE 32 3 Ignacio Gonzalez HIJO 12 4 Sandra Romero CONYUGUE 37 5 Esteban Fels HIJO 5 5 Lucila Fels HIJO 8 5 Miguel Fels CONYUGUE 34 6 Andres Rodriguez HIJO 3 7 Carlos Ibañez CONYUGUE 52 7 Francisco Ibañez HIJO 5 Un Join en la sintaxis clásica de SQL Server se escribía juntando varias tablas en el FROM e igualando las columnas en la sección del WHERE SELECT CODIGO, NOMBRE, FAMILIAR, RELACION, EDAD FROM EMPLEADO, FAMILIA WHERE CODIGO = CODEMP 1 Juan Perez Ernestina Perez HIJO 7 6 Ines Moreno Andres Rodriguez HIJO 3 La sintaxis ANSI para realizar una Join es a través de la cláusula INNER JOIN SELECT CODIGO, NOMBRE, FAMILIAR, RELACION, EDAD FROM EMPLEADO INNER JOIN FAMILIA ON (CODIGO = CODEMP)

1 Juan Perez Ernestina Perez HIJO 7 6 Ines Moreno Andres Rodriguez HIJO 3 Este tipo de Join deja fuera de la lista a los empleados que no tienen conyugue o hijos Para ver a todos los empleados y sus vínculos familiares en caso que corresponda, se debe ejecutar una sentencia conocida como Outer Join 3.2 Outer Join En la sintaxis clásica se representaba con un "*=" con el "=" junto al campo de la tabla donde se encuentran los valores que pueden ser omitidos. SELECT CODIGO, NOMBRE, FAMILIAR, RELACION, EDAD FROM EMPLEADO, FAMILIA WHERE CODIGO *= CODEMP 1 Juan Perez Ernestina Perez HIJO 7 6 Ines Moreno Andres Rodriguez HIJO 3

9 Andrea Pizzini NULL NULL NULL En la sintaxis ANSI esta sentencia debe ser escrita como: OUTER JOIN FAMILIA ON (CODIGO = CODEMP) 1 Juan Perez Ernestina Perez HIJO 7 6 Ines Moreno Andres Rodriguez HIJO 3 9 Andrea Pizzini NULL NULL NULL 3.3 Diferencias en el Outer Join Suponga que nos piden conocer todos los empleados que tienen hijos con edad menor a 12 años Utilizando la sintaxis clásica escribíamos SELECT CODIGO, NOMBRE, FAMILIAR, RELACION, EDAD FROM EMPLEADO, FAMILIA WHERE CODIGO *= CODEMP AND RELACION = 'HIJO' AND EDAD <= 12 1 Juan Perez Ernestina Perez HIJO 7 4 Nahuel Testa NULL NULL NULL

6 Ines Moreno Andres Rodriguez HIJO 3 9 Andrea Pizzini NULL NULL NULL El resultado es la lista de empleados que tienen hijos menores de 12 años, pero incluye también a los que no tienen hijos. Este es el comportamiento clásico del Join, ya que utilizando la sintaxis clásica PRIMERO se aplica el Filtro, y SEGUNDO se hace el Join de los resultados. Para cumplir con la misma petición utilizando la sintaxis ANSI, la query se debería escribir OUTER JOIN FAMILIA ON (CODIGO = CODEMP) WHERE RELACION = 'HIJO' AND EDAD <= 12 1 Juan Perez Ernestina Perez HIJO 7 6 Ines Moreno Andres Rodriguez HIJO 3 Como se puede observar en el resultado, hay un cambio de comportamiento en cómo se procesan los datos Esto se debe a que la sintaxis ANSI PRIMERO se realiza el Join y SEGUNDO filtra los resultados a diferencia de la sintaxis clásica PRIMERO se aplica el Filtro, y SEGUNDO se hace el Join de los resultados, con lo que no importa cómo se escriba el filtro siempre se incluirán los registros de la tabla origen (empleados) que no tengan su correlato en la tabla destino (familia) Sin importar cuál de los dos resultados deba considerarse correcto o mejor la realidad es que existe un cambio de comportamiento que puede afectar el resultado de consultas preexistentes. Otro Ejemplo Suponga que nos piden un listado de todos los empleados con el nombre de su conyugue en caso de tenerlo. Utilizando la sintaxis clásica escribimos: SELECT CODIGO, NOMBRE, FAMILIAR, RELACION, EDAD FROM EMPLEADO, FAMILIA WHERE CODIGO *= CODEMP AND RELACION = 'CONYUGUE'

6 Ines Moreno NULL NULL NULL 9 Andrea Pizzini NULL NULL NULL Utilizando la sintaxis ANSI debemos escribir OUTER JOIN FAMILIA ON (CODIGO = CODEMP) WHERE RELACION = 'CONYUGUE' Al realizar el Join primero, y luego filtrar por la relación, la consulta con la sintaxis ANSI no nos está mostrando los datos que cumplen con la consigna. Si bien en el caso anterior la sintaxis ANSI parecía traer el resultado correcto, en este ejemplo la sintaxis clásica parece ser la más adecuada. El problema se resuelve entendiendo en cada caso que es lo que se debe realizar primero, el Filtro o el Join. Dado que la sintaxis clásica ya no está disponible en SQL Server 2012, solo queda la sintaxis ANSI para resolver el problema Para realizar el filtro ANTES del Join, se debe mover la condición de la cláusula WHERE dentro de la cláusula ON. Esto se escribe así OUTER JOIN FAMILIA ON (CODIGO = CODEMP AND RELACION = 'CONYUGUE') 6 Ines Moreno NULL NULL NULL

9 Andrea Pizzini NULL NULL NULL De esta forma se le indica al motor de base de datos realizar el filtrado ANTES de realizar el Join 3.4 Resumen Si necesitamos realizar PRIMERO Join y SEGUNDO Filtrar el resultado debemos escribir la condición del filtro dentro de la cláusula WHERE, porque el WHERE siempre se ejecuta DESPUES de realizar el Join OUTER JOIN FAMILIA ON (CODIGO = CODEMP) WHERE RELACION = 'CONYUGUE' Si necesitamos realizar PRIMERO el Filtrado y SEGUNDO el Join con el resultado del filtro ya aplicado, debemos escribir la condición del filtro dentro de la cláusula ON () del OUTER JOIN, porque de esta forma el filtro siempre se ejecuta ANTES de realizar el Join OUTER JOIN FAMILIA ON (CODIGO = CODEMP AND RELACION = 'CONYUGUE') 6 Ines Moreno NULL NULL NULL 9 Andrea Pizzini NULL NULL NULL Entonces cuando utilizamos la sintaxis ANSI (LEFT OUTER JOIN): Cuando se necesita realizar el Filtrado de Datos Después de realizar el Join se debe establecer la condición del filtro dentro de la cláusula WHERE

Cuando se necesita realizar el Filtrado de Datos Antes de realizar el Join se debe establecer la condición del filtro dentro de la cláusula ON () 4. MÓDULO DE REPORTES 4.1 Modo de Compatibilidad El módulo de Reportes (RM) genera automáticamente consultas de SQL para resolver la recuperación de los datos de la base según la definición del reporte. El módulo puede generar las sentencias utilizando la cláusula de Join Clásica (*=) o la Cláusula de Join ANSI (LEFT OUTER JOIN). A partir de la versión 2.3.9.16 en caso de detectar que la base de datos se encuentra en modalidad compatible con SQL Server 2000 (esto es requerido hasta la versión 2.3.9.15) el editor de definición de reportes permite definir el modo de compatibilidad del reporte, esto significa que las consultas de SQL que el reporte generará serán compatibles con el modo de compatibilidad de la base de datos SQL Server 2000 o modo compatibilidad SQL Server 2005 en adelante. Este comportamiento puede definirse en la sección General del editor de reportes, según se muestra en la figura a continuación. En caso de se selecciona el Modo compatible con SQL2000 RM generará sentencias con sintaxis clásica (*=). En caso de se selecciona el Modo compatible con SQL2005 RM generará sentencias con sintaxis ANSI (LEFT OUTER JOIN). En caso de se selecciona el Preguntar RM generará un parámetro de tipo booleano que permite establecer en el momento de ejecutar el reporte el modo de funcionamiento. Esto está destinado al proceso de validación del reporte para facilitarle al usuario verificar el funcionamiento de un modo y otro sin entrar en el diseño del reporte. 4.2 Filtrar antes de realizar el Join Cuando se utiliza el modo de compatibilidad con SQL Server 2005 todos las condiciones definidos en la sección Filtros se aplican en la cláusula WHERE, por lo que se filtran los datos luego de haber realizado el Join. En caso de requerir que los datos sean filtrados antes de realizar el Join en la ventana Propiedades de las relaciones del editor de reportes puede establecer las condiciones de filtrado que deben establecerse ANTES de realizar el Join. El efecto sobre el conjunto de datos es similar a la sintaxis clásica (*=) con el modo Compatibilidad SQL Server 2000 activo.

4.3 Prueba y Validación de la instalación Es recomendable antes de realizar la actualización a SQL Server 2012, activar el módulo de compatibilidad con SQL Server 2012 y modificar la propiedad Modo de compatibilidad de SQL de los reportes críticos de la instalación estableciendo su valor a Modo compatible con SQL 2005 para que comiencen generar sentencias compatibles con las soportadas por SQL Server 2012. Esta tarea puede requerir modificar uno o más reportes para adecuarlos al modo de funcionamiento del SQL Server 2012. Valide el correcto funcionamiento en el entorno de pruebas y solo cuando esté completamente seguro que funciona correctamente, aplique el mismo cambio en su entorno de producción. No migre la versión de la base de datos a SQL Server hasta asegurarse que ha revisado todos los reportes que son críticos para su instalación.