MsSQL | DevTroce.com

Post Etiquetado en ‘MsSQL’

  1. Cambiar el nombre del usuario root en MySQL

    Agosto 15, 2010. Dejanos el Primer Comentario..

    Cuando instalamos por primera vez un motor de base de datos MySQL, éste crea un montón de configuraciones por defecto que no son precisamente las más convenientes en todos los contextos. Si la instalación será una de producción es conveniente subir los niveles de seguridad del mismo, siempre achicando las brechas para algún atacante.

    Es sabido que el usuario super administrador en MySQL se llama root, y tiene “super poderes” para hacer y deshacer lo que quiera. Con esto, al atacante le queda sólo conocer la contraseña de dicho usuario y podrá hacer lo que le venga en ganas. Un paso más que podemos hacer para complicarle las cosas a nuestro atacante es cambiar el nombre del usuario root. Continúa Leyendo Cambiar el nombre del usuario root en MySQL

  2. Como reiniciar un campo Identity en SQL Server

    Agosto 14, 2010. Un Comentario.

    Ya he escuchado muchas veces personas preguntando por como reiniciar los valores de un campo que es Identity en SQL Server. Es muy común ésta tarea en migraciones, reimplementaciones y otros.

    Existen varias maneras de lograr éste cometido, una es directa y otras “efectos colaterales” de ciertas acciones. La manera explicita de lograr sólo el reinicio de sus valores es la siguiente: Continúa Leyendo Como reiniciar un campo Identity en SQL Server

  3. Configurar Servidor Vinculado en SQL Server con MySQL

    Agosto 13, 2010. Un Comentario.

    El año pasado habíamos visto como crear un servidor vinculado en SQL Server con Firebird, en ésta oportunidad veremos como hacerlo con MySQL, son muy parecidos los pasos a seguir, pero más sencillo que con el anterior motor.

    Lo primero que necesitaremos es descargar el proveedor de datos OLE DB para MySQL (Perteneciente a Cherry Software). Ejecutamos el fichero setup.exe y seguimos los pasos correspondientes, en un punto de la instalación nos pedirá que descarguemos una librería (libmysql.dll) desde los repositorios de MySQL mismo, lo descargamos y copiamos en el path que nos indica, por lo general Continúa Leyendo Configurar Servidor Vinculado en SQL Server con MySQL

  4. Qué tipo de dato debo usar entre Decimal, Float o Real?

    Agosto 10, 2010. Dejanos el Primer Comentario..

    Hace tiempo que quería escribir sobre éste tema, ya que es muy importante considerar esto antes de comenzar a desarrollar un sistema nuevo (digo antes, porque si no lo hacen luego tendrán serios problemas).

    En mi suerte (si existe tal cosa) supe de ésto hace tiempo gracias a que un día estuve leyendo la documentación oficial sobre los tipos de datos en SQL Server, pero para desgracia de un par de compañeros laborales ellos tuvieron que descubrirlo por las malas, cuando las cosas no salían como soñaban que saldrían.

    La historia viene Continúa Leyendo Qué tipo de dato debo usar entre Decimal, Float o Real?

  5. Obtener la fecha y hora del sistema desde los motores de base de datos más utilizados

    Agosto 5, 2010. Dejanos el Primer Comentario..

    He notado que mucha gente busca éste tipo de contenido constantemente, así que decido finiquitar a los motores de base de datos más comunes en un único post, dado que también si lo hago por separado sería muy corto.

    Una cosa que me gustaría dejar bien en claro, que en la mayoría de los motores que expondré hay más de un modo de conseguir la fecha y la hora del sistema operativo huésped, pero sólo mostraré la más común.
    Vamos a lo práctico y veamos: Continúa Leyendo Obtener la fecha y hora del sistema desde los motores de base de datos más utilizados

  6. Limpieza del historial de SQL Server

    Agosto 3, 2010. 4 Comentarios.

    Cuando trabajamos con SQL Server como motor de Base de Datos para nuestra producción, notaremos que éste crece rápidamente, ocupando mucho espacio en disco, uno de los tantos puntos que hace crecer su tamaño es el historial de sistema, que se almacena dentro de la BD llamada MSDB.

    Los datos más importantes que se guardan aquí es la historia de las restauraciones y backups hechos, así que cuanto más usemos éstos recursos, la BD crecerá más. Es muy importante tener la data de esto por muchos motivos, pero también tenemos que tener en cuenta que es sólo útil por cierto tiempo (la cantidad depende de nuestro objetivo, uso, necesidad). Por ello es Continúa Leyendo Limpieza del historial de SQL Server

  7. Ejecutar código VisualBasic .Net en Procedimientos Almacenados de SQL Server

    Julio 25, 2010. Un Comentario.

    En los últimos artículos estábamos escribiendo contenido destrozador sobre SQL Server & .Net, y me hizo pensar por que no hacer un MIX de ambas cosas en un sólo post para no perder la racha :D Esto me llevo a crear éste artículo en donde podremos escribir código en Visual Basic o CSharp .Net para ejecutarlo de un modo más integrado.

    Los procedimientos CLR nos ofrece algunas ventajas sobre T-SQL:

    • Para hacer procesos complejos no necesitamos ser gurús del T-SQL, no es una ventaja en sí pero es más facil éste camino para la mayoría de los programadores.
    • Podemos utilizar toda la potencia de la programación orientada a objetos de VB y C#
    • Manipulaciones finas, de estructuras, cadenas, criptografia, conexion a otros motores remotos, es más fácil y potente hacerlo con dotNet que T-SQL que para algunas tareas es limitado
    • El recolector de basura del CLR es mucho más eficiente y manipulable que el del motor de BD

    Continúa Leyendo Ejecutar código VisualBasic .Net en Procedimientos Almacenados de SQL Server

  8. Tips para optimizar el rendimiento de SQL Server

    Julio 18, 2010. 7 Comentarios.

    Buenas a todos una vez más… hace unos días tuvimos la visita de un grande en tecnologías Microsoft en mi trabajo, y este articulo es básicamente un resumen de algunos de los puntos más resaltantes de las recomendaciones que nos dio, para realizar sobre nuestro servidor actual, y para nuevos servidores que se quieran instalar. Sin más preámbulos, pasemos de pleno a las recomendaciones, a las cuales, les he dado un toque particular para explicarlas ;) Continúa Leyendo Tips para optimizar el rendimiento de SQL Server

  9. Instalación SQL Server 2008… Una guía más? Porqué no :)

    Julio 18, 2010. 5 Comentarios.


    Buenas a todos! Llevo bastante rato lejos de Devtroce asi que tengo un par de articulos que desempolvar… entre ellos, este…

    Mucho he encontrado en la web acerca de guías de instalación del motor de base de datos estrella que posee Microsoft, pero muchas veces debemos complementar la info de esas guías con otras. Bueno, la idea de este pequeño tutorial de instalación de SQL Server es eso, analizar el proceso de instalación de SQL Server paso a paso de principio a fin, y tratar de explicar las distintas áreas de la instalación. Continúa Leyendo Instalación SQL Server 2008… Una guía más? Porqué no :)

  10. Como programar en n-Capas con C# (Parte 3)

    Julio 12, 2010. 3 Comentarios.

    Esta es la tercer entrega, probablemente será la más corta pero no la última aún. El motivo de su longitud es por que es una clase que se utiliza como medio para crear la flexibilidad y portabilidad de fuentes de datos, en éste caso motores de base de datos.

    También daremos por terminada la capa de Acceso a Datos, entonces así no mezclamos el código y será más fácil seguirlo posteriormente. También pertenecerá al namespace AccesoDatos. Lo llamo conexión por que es la clase con las otras capas interactuaran en modo directo.
    Para ello creamos un objeto estático de la clase GDatos que instanciará de la clase SqlServer. Creo que ya van captando el rumbo de esto no? si crearamos otra clase por ejemplo Oracle.cs o MySQL.cs, solamente cambiariamos una linea de código, donde el objeto GDatos del tipo GDatos, sea SqlServer, Oracle u otro motor que codifiquemos. Podemos hacerlo con ODBC, OleDB para conexiones genéricas. No les parece grandioso que solo deban tocar parte de una línea de código para portar la App a cualquier otro motor de Base de Datos? :D Continúa Leyendo Como programar en n-Capas con C# (Parte 3)

  11. Como programar en n-Capas con C# – SQL Server (Parte 2)

    Julio 12, 2010. 4 Comentarios.

    Continuando con la segunda entrega de la programación en n-Capas, (la primera  lo pueden ver aqui).  Hasta el momento solo creamos una clase abstracta que servirá de padre para las demás implementaciones (1 clase por cada fabricante de motor).

    Ahora nos enfocaremos en crear una capa para conectarnos a SQL Server, si llegamos a cambiar de proveedor de base de datos en algún momento, lo único que deberíamos hacer es agregar una clase semejante a ésta con la implementación especifica para éste motor, ni siquiera debemos modificar ésta clase que veremos ahora, el unico cambio Continúa Leyendo Como programar en n-Capas con C# – SQL Server (Parte 2)

  12. Como programar en n-Capas con C# (Parte 1)

    Julio 12, 2010. 9 Comentarios.

    Este es un tema polémico del que se habla mucho y nada, digo que se habla mucho porque al buscar algo de información en Internet, uno se da cuenta, que esta plagado de sitios donde preguntan como aplicar programación en 3 capas, o N-Capas, pero en muy pocos lugares se responde con algo cierto y concreto, la mayoría hacen referencia a libros gordos que tardarías en leer semanas (no estoy en contra de la lectura, es un proceso largo nada más y casi todos buscamos aprenderlo un poco más rápido). Este artículo también será bastante largo y me aventuro a decir que me tomará varias noches escribirlo completamente, pero no será nada comparado con un libro con un lomo de 15 centímetros :P

    La primer gran confusión que noto, es que la mayoría no sabe diferenciar entre los conceptos Continúa Leyendo Como programar en n-Capas con C# (Parte 1)

  13. Importar datos de MS Excel 2007 [.xlsx] a SQL Server

    Junio 5, 2010. Dejanos el Primer Comentario..

    Importar datos de las planillas electrónicas MS Excel con el formato de la versión 2007 en adelante (.xlsx) en SQL Server en sus versiones 2005 y 2008 sin el Service Pack 1 como mínimo instalado, notarán que no se puede realizar por el típico proceso, ya que no existe un proveedor ODBC para ésta versión.

    No es un proceso complejo, y por suerte como nos tiene acostumbrados Microsoft con sus productos, es muy sencilla esta tarea. Iremos viendo unas capturas de pantalla para hacer más sencillo también el post.

    Tenemos que elegir el proveedor de datos como Microsoft Office 12.0 Access Database Engine. En caso de no tener instalado lo puede descargar Continúa Leyendo Importar datos de MS Excel 2007 [.xlsx] a SQL Server

  14. Capturar Output de los Procedimientos Almacenados de SQL Server con Java

    Mayo 30, 2010. 4 Comentarios.

    A parte de un conjunto de datos que puede devolver un Stored Procedure en SQL Server, también podemos hacer que ellos devuelvan uno o varios valores escalares, un caso tipico es cuando insertamos un registro y la tabla tenia una PK Identity, si queremos recuperar esa clave podemos usar este mecanismo, aunque no necesariamente se reduce a esa posibilidad, con un poco de imaginación podemos darle usos en otras situaciones. El ejemplo que muestro esta construido con SQL Server, pero es funcional con otros motores que manejan el retorno de valores escalares en sus procedimientos almacenados..

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    CREATE PROCEDURE InsCliente
       @IdCliente INT OUTPUT,
       @Nombre VARCHAR(25),
       @Ruc VARCHAR(25)
    AS
    BEGIN
       -- Insertamos un registro
       INSERT INTO Cliente VALUES (@Nombre, @Ruc);
       -- Recuperamos el Id que se genero
       SELECT @IdCliente = @@Identity;
    END

    Tomando en cuenta este procedimiento que Continúa Leyendo Capturar Output de los Procedimientos Almacenados de SQL Server con Java

  15. Cambiar el propietario de un objeto en SQL Server

    Mayo 13, 2010. 4 Comentarios.

    En SQL Server todos los objetos siempre tienen un dueño (owner) el cual tiene poder absoluto sobre el mismo, pero eso no limita que otros usuarios tengan poder sobre un objeto dado, tendrán permisos si el dueño o un usuario con poder de otorgar permisos (otorgado originalmente por el dueño o cualquier usuario que pertenezca a las funciones fijas de base de datos db_owner o a las funciones fijas de base de datos db_ddladmindb_securityadmin).

    Hay momentos en donde lo que buscamos es cambiar directamente de dueño un objeto, esto puede darse por varios motivos, eliminación del dueño (hay que tener que tener cuidado con esto o eliminaremos todos lo objetos que pertenezcan al dueño), asignación rápida de permisos completos de un usuario sobre el objeto, con respecto a si aplicamos este procedimiento por este motivo, debemos tener muy en cuenta que todos los permisos que tenía en propietario original, serán revocados, por lo Continúa Leyendo Cambiar el propietario de un objeto en SQL Server

  16. Crear backup del Transaction Log y reducir su tamaño en SQL Server

    Mayo 6, 2010. Dejanos el Primer Comentario..

    Uno de los típicos problemas que aquejan a los DBA de SQL Server es el crecimiento montruoso del mismo, muchas veces ocupa varias veces más espacio que la propia base de datos. Este a su vez cumple un rol muy importante para este motor, no está allí por sólo capricho :P . Es el modo que el motor puede garantizar la integridad de los datos, toda transacción primeramente se escribe allí, y si y sólo sí el usuario confirma (COMMIT TRANSACTION) la operación pasa a la base de datos, también le sirve contra apagones, cortes de red o cualquier otro evento similar y así poder dejar los datos como estaban originalmente.

    Existen tres modos de recuperación del log: Completa, Registro Masivo y Simple (No entraremos en detalle de esto por hoy).

    La manera más típica de reducir el tamaño del Log es haciendo un Backup del mismo, tarea que recomiendo sea ejecutada períodicamente y en lo posible tener armado un plan de mantenimiento  con ejecuciones automáticas.

    1
    2
    3
    4
    5
    6
    
    BACKUP LOG [Devtroce] 
     
    TO DISK = N'C:\Backup\Devtroce.bak'
    WITH NOFORMAT, NOINIT,
    NAME = N'Devtroce-Transaction Log Backup',
    SKIP, NOREWIND, NOUNLOAD, STATS = 10;

    o bien, Continúa Leyendo Crear backup del Transaction Log y reducir su tamaño en SQL Server

  17. Importar datos de un fichero CSV en SQL Server

    Abril 24, 2010. Un Comentario.

    Muchas veces en la práctica vamos a encontrarnos con la siguiente situación, nos envían de algún lugar datos en un fichero CSV (Fichero que tiene valores separados por comas), y necesitemos almacenar estos en nuestra base de datos, los motivos pueden ser varios, importación de datos de alguna base datos que no solamente puede ser SQL Server mismo, algún programa externo a nosotros genera este tipo de ficheros, por cuestión de interoperabilidad con otras empresas se decide utilizar este mecanismo, en fin, cualquier motivo resulta válido para el caso.

    El punto más bien es utilizar un mecanismo más rápido de inserción de los mismos a nuestra BD, que tener que programar una aplicación que haga este trabajo. SQL Server tiene su propia herramienta que hace esto por nosotros, se lo puede hacer de manera gráfica como por línea de comandos. Evidentemente no veremos el modo gráfico porque es demasiado intuitivo que no requiere explicación, pero si sería interesante conocer como esa pantalla gráfica hace “por debajo” este trabajo, que nosotros mismo podemos hacerlo.

    El comando BULK nos ayudara, veamos un ejemplo práctico. Creemos la siguiente tabla:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    USE BD
    CREATE TABLE CSVPersona
    (
    IdPersona INT,
    Nombre VARCHAR(40),
    Apellidos VARCHAR(40),
    Nacimiento DATETIME
    );
    GO

    Luego necesitamos crear Continúa Leyendo Importar datos de un fichero CSV en SQL Server

  18. Conectar y Consultar a SQL Server desde PHP sobre Windows

    Abril 5, 2010. Dejanos el Primer Comentario..

    Mucho de este lenguaje no he escrito, uno de los motivos es que no trabajo con el hoy día pero siempre me pareció un lenguaje muy interesante y sencillo de entender su sintaxis. Anteriormente hemos visto un ejemplo muy sencillo de concatenación de variables string, hoy haremos algo más interesante: Nos conectaremos a SQL Server 2008 (también funciona con otras versiones) y haremos una consulta sencilla y lo mostraremos en el browser.

    Todo esto lo haremos bajo un servidor web Apache instalado en Windows, las fuentes del php no cambiarían si lo usaramos en otro Sistema Operativo, pero si la configuración del PHP en sí sobre apache (prometo verlo más adelante este tema).

    Para llevar a cabo este ejemplo doy por hecho que tienen instalado el servidor Web Apache y los módulos para PHP, veremos una pequeña configuración básica nada más. Lo primero que necesitaremos es descargarnos las “.dll” que permitirán interactuar con nuestro motor de bases de datos, ellas podemos descargarlas desde aquí. Normalmente en nuestro directorio donde se encuentra instalado el PHP, existe una carpeta llamada “ext”, en ella debemos copiar el fichero:

    php_mssql.dll

    La cual se encuentra en las carpetas que acabamos de descargar en un directorio con el mismo nombre. Luego en la raíz de la instalación  Continúa Leyendo Conectar y Consultar a SQL Server desde PHP sobre Windows

  19. Tutorial de configuración de Servidores de Replicación en SQL Server

    Marzo 29, 2010. Dejanos el Primer Comentario..

    Es muy típico hoy día necesitar de una alta disponibilidad de los datos de nuestros sistemas informáticos, o distribuirlos a lugares remotos constantemente. Normalmente no es una terea muy sencilla de manejar pero SQL Server en cierto modo nos facilita bastante la vida laboral ya que trae características para estos objetivos, nos ayudará a transaportar nuestros datos de manera integra y segura.

    El ambiente necesario es de 2 o más servidores para crear la replicación. Los objetos o conceptos que debemos manejar son seis:

    1. Publicador
    2. Distribuidor
    3. Suscriptor
    4. Publicación
    5. Articulo
    6. Suscripción

    El publicador se encuentra alojado en un servidor y se encarga de poner a disposición los datos, es pocas palabras, publica lo que se necesita replicar, en sus publicaciones pueden existir varios Continúa Leyendo Tutorial de configuración de Servidores de Replicación en SQL Server

  20. Verificar puerto de escucha del servicio de MS Sql Server 2008

    Marzo 26, 2010. Un Comentario.

    Hace tiempo tuve un problemita con netBeans 6.8 al querer crear mis clases Entity apartir de mis tablas de bases de datos, y al pasarle los parametros de conexion me daba un error que me sugería que verifique que si el puerto estaba aceptando conexiones tcp/ip y todas esas cosas, si mal no recuerdo el puerto de escucha del servicio del motor de base de datos sql server es el 1433, pero me lleve una sorpresa cuando descubrí este stored procedure que entre otras muchas cosas mas te muestra en que puerto esta escuchando el servicio del motor de bases de datos

    1
    2
    3
    
    Use nombre_base_datos
    Go
    Xp_readerrorlog

    Este procedimiento almacenado extendido devuelve el contenido del archivo de registro de errores.

  21. Realizar Consultas Paginadas en SQL Server, MySQL, Oracle & PostgreSQL

    Febrero 5, 2010. Un Comentario.

    Paginar nuestras consultas resulta que siempre aligera más la carga del motor de base de datos, siempre y cuando éste tenga los índices donde corresponden y no en cualquier columna o peor aun, no tener indices, ya que sólo se transmiten los datos a mostrarse en el momento, ésta característica se siente mucho mejor cuando estamos trabajando con aplicaciones web, u otras que corran sobre una red de baja velocidad o alta concurrencia. De ahí su gran implementación en los últimos tiempos.

    Para lograrlo necesitamos de la ayuda de nuestro motor de base de datos, ésta vez veremos el ejemplo en 4 motores muy populares, SQL Server, Oracle, MySQL y PostgreSQL. Personalmente creo que es más sencillo implementarlo en MySQL y PostgreSQL, seguido de Oracle y SQL Server. Aunque esto no hace que Continúa Leyendo Realizar Consultas Paginadas en SQL Server, MySQL, Oracle & PostgreSQL

  22. Crear e Invocar funciones (UDF) en SQL Server

    Enero 18, 2010. Dejanos el Primer Comentario..

    Las siglas UDF viene del inglés User Defined Functions (Funciones Definidas por el Usuario), esto quiere decir que podemos crear funciones personalizadas para hacer un determinado proceso que utilizaremos en más de una ocasión, luego tan sólo deberíamos invocarlo para volver a utilizarlo. En Transact-SQL existen 3 tipos de funciones:

    1. Funciones Escalares
    2. Funciones en línea
    3. Funciones en línea de múltiples sentencias

    Para ver en acción esto, crearemos una base de datos (versión 2008 por el tipo de dato date que no es soportada en versiones anteriores) con una tabla y datos de ejemplo Continúa Leyendo Crear e Invocar funciones (UDF) en SQL Server

  23. Cadena de Conexión de SQL Server

    Enero 18, 2010. Dejanos el Primer Comentario..

    Siguiendo la temática de las cadena de conexión de los motores para los distintos lenguajes, ya hemos visto para Oracle, ahora veremos para SQL Server. Continúa Leyendo Cadena de Conexión de SQL Server

  24. Capturar error en SQL Server y volver a Lanzarlo

    Enero 13, 2010. Dejanos el Primer Comentario..

    Cuando trabajamos con SQL Server con aplicaciones clientes escritas en el lenguaje de programación que sea y usamos transacciones controladas con try..catch, podríamos llegar tener problemas si no lo hacemos del modo correcto.

    Me explico mejor con un ejemplo práctico, supongamos que tenemos una aplicación de facturación y queremos eliminar una factura, para salvaguardar la integridad de nuestros datos lo más lógico es crear una transacción dentro del procedimiento que hará la baja, así por si ocurre un error en el eliminado del detalle de la factura, no borramos la cabecera, o si ocurre el error al eliminar la cabecera, deshacemos el eliminado previo del detalle para que todo quede como estaba anteriormente. Hasta este punto todo es muy bonito, si en el procedimiento declaramos la transacción controlada por un bloque try y dentro del catch hacemos sólo el rollback, la aplicación nunca se dará por enterada que en la base de datos hubo algún problema, y si éste emite un mensaje de proceso satisfactorio, lo hará incluso cuando tengamos errores. ¿Por qué esto? Simple, la excepción no se expandió desde la base de datos y no pudo ser capturada Continúa Leyendo Capturar error en SQL Server y volver a Lanzarlo

  25. Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server

    Enero 11, 2010. 8 Comentarios.

    Éste probablemente sea uno de los post mas raros que escribiré, todo programador cristiano sabe que ASP.net se despliega oficialmente sobre el servidor web de Microsoft IIS, necesitando necesariamente un servidor Windows. Hoy haremos lo que muchos desean, lo que muchos dicen ser imposible, o lo que muchos solamente quieren experimentar, haremos una mini aplicación escrita en C#.net y ASP.net, que se conecte a un servidor de base de datos SQL Server, desplegandolo sobre Apache Tomcat en GNU/Linux.

    Existen mods del proyecto mono para instalar sobre Apache que permiten correr ASP.net sobre él, pero no es precisamente eso lo que usaremos, sino algo más extravagante.

    ¿Y cómo se supone que haremos esto? La empresa Mainsoft (apoyado por Novell) ofrece un producto que forma parte de una comunidad, con licencia openSource, llamado Continúa Leyendo Desplegar ASP.Net en Apache Tomcat sobre GNU/Linux y SQL Server

  26. Plantillas de SQL Server Customizadas

    Enero 6, 2010. Dejanos el Primer Comentario..

    Uno de los tantos problemas de desarrollar en Grupos de Trabajo grandes, es la manera en la cual codifican los demás Compañeros de Trabajo, o que no se respeten al 100% las Políticas de Desarrollo y Codificación de la Empresa / Grupo de Trabajo, para los Scripts y Procedimientos Almacenados o Triggers de nuestras Bases de Datos en SQL Server.

    Para facilitar las cosas, muchas veces las herramientas como el SQL Query Analyzer y SQL Server Management Studio del SQL Server 2005 / 2008, nos presentan las “Plantillas de Código” (pequeños pre-armados de código Transact-SQL listo para modificarse y ser usado para nuestros fines).

    Pero a veces nuevamente esas plantillas no tienen el formato que deseamos, y necesitamos adecuarlas a ellos.

    Una manera de estandarizar esos formatos, es ubicando las plantillas y modificarlas, Continúa Leyendo Plantillas de SQL Server Customizadas

  27. Realizar Consultas Recursivas en SQL Server

    Diciembre 26, 2009. 2 Comentarios.

    Como todo buen diseñador de base de datos sabe, es bastante común encontrarse con entidades recursivas en el diseño de nuestra BD, 2 ejemplos típicos son el jefe y el subordinado, en el diseño ambas personas se encuentran registradas como tuplas dentro de la entidad Persona o Funcionario (según el diseño que hemos tomado, incluso estaría mejor diseñado si se lo hace en base al cargo), al no existir 2 entidades que tengan cardinalidad 1:M, por que así obtendríamos duplicación de datos, debemos determinar un modo que ambos estén en la misma entidad y a su vez tener la capacidad de controlar quién es jefe de quién, esto se lograría agregando una columna más que sea del mismo dominio que su propia PK, es decir, la columna nueva sería FK de la PK que le determina, logrando así una cardinalidad 1:M recursiva.

    Otro ejemplo típico es el caso de los contratos, estos suelen tener la característica que vencen en una fecha determinada, por cuestiones de ventas/marketing al cliente se le facilita normalmente este proceso con una renovación de contrato Continúa Leyendo Realizar Consultas Recursivas en SQL Server

  28. Un ejemplo sencillo y entendible de LINQ con C#

    Diciembre 19, 2009. 8 Comentarios.

    Este tema de LINQ produjo su conmoción desde que apareció como herramienta de rápido desarrollo para mapeo ORM, es decir, crear una abstracción de las tablas de nuestra base de datos en clases para nuestra aplicación, una tabla – una clase.

    Por ser un concepto relativamente nuevo, no quiere decir que sea complejo implementarlo, al contrario, es más sencillo y veloz el desarrollo de este modo. Personalmente me recuerda cierta tecnología de java. (sólo cierta semejanza ya que su implementación no es igual).

    Primeramente para nuestro ejemplo necesitaremos una base de datos de ejemplo, Continúa Leyendo Un ejemplo sencillo y entendible de LINQ con C#

  29. Configurar Linked Server con SQL Server y Firebird

    Diciembre 12, 2009. Un Comentario.

    Un Servidor Vinculado sirve para que el motor de base de datos (en este caso SQL Server) pueda tener acceso a otra BD para hacer consultas distribuidas, ejecutar Stored Prochttp://www.devtroce.com/wp-admin/edit.phpedures, entre otros, digamos de un modo “transaparente” ya sea del mismo proveedor o no.

    Para lograr esto necesitamos un proveedor de datos OLEDB y definir su cadena de conexión, a la par de asignarle un nombre lógico, el cual será usado para su invocación directa. Una vez definido esto podemos utilizarlo de manera abstracta para conectarnos a otras fuentes sin necesidad de volver a escribir toda la cadena de conexión. Crear esto con otro motor o instancia de SQL Server es relativamente sencillo, por lo tanto me centraré más bien en hacerlo con el motor de otro fabricante, en este caso Firebird, el cual fue el que más problemas me dió, con MySQL y PostgreSQL incluso fue más sencillo.

    Oficialmente Microsoft da soporte para crear Linked Servers contra SQL Server y Oracle, Continúa Leyendo Configurar Linked Server con SQL Server y Firebird

  30. Diagrama de Venn implementado en SQL

    Diciembre 6, 2009. 2 Comentarios.

    Si queremos aplicar operaciones de conjuntos en el lenguaje SQL tenemos un par de formas de hacerlo, el modo más elegante de hacerlo es utilizar las sentencias diseñadas para este efecto. Los ejemplos que pondre se aplican a SQL Server y Firebird, esto también se puede hacer en Oracle, pero de un modo un tanto distinto, que lo veremos más adelante.

    • UNION Soportados por todas las versiones de SQL Server, y Firebird
    • EXCEPT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2
    • INTERSECT Soportado por SQL Server 2005 en adelante, no soportado por Firebird 1.5 ni 2

    Para poder utilizar estas sentencias solo debemos cumplir con dos condiciones:

    1. Todos los conjuntos de datos deben tener la misma cantidad de columnas, del mismo tipo de datos.
    2. Sólo se puede aplicar una sentencia ORDER BY, en el ultimo SELECT.

    Los siguientes ejemplos trabajaremos con las entidades PROFESORES y ALUMNOS. Continúa Leyendo Diagrama de Venn implementado en SQL