1 0 Tag Archives: Transact-SQL
post icon

Como llevar un control de versiones del código DDL en SQL Server

Ya conociamos y veniamos hablando del SubVersion para algunos IDE’s de desarrollo e instalación de los servidores sobre Windows y Linux.

Es también sabidos que subversionar nuestros proyectos en el lenguaje que estén hechos es muy sencillo, y nos aporta muchas ventajas. Pero que sucede a la hora de versionar la Base de Datos?

Aquí casi siempre tendremos problemas, especialmente si trabajan como estoy acostumbrado. Todo el desarrollo posible sobre la BD en vez de la App. Esto nos lleva a mayor tiempo y trabajo invertido sobre la base de datos no subversionada que la aplicación que sí lo está (un poco paradójico en cierto modo).

Oracle tiene su propia herramienta de versionado de código (que podremos verlo más adelante, más vale que lo tenga con lo que cuesta también este motor). Pero los otros motores? Especificamente con SQL Server podemos versionar el código con Team Foundation Server si configuramos bien las cosas.

Otra alternativa que he encontrado hace muy poco y me ha gustado más que todas las existentes (al menos que conozco) es el producto de Red Gate, la misma es de paga, pero me parece un precio justo por la herramienta que es y no representa casi nada con lo que podemos salvar utilizando. Aunque si hubiera sido bueno tener una gamma más amplia de productos para subversionar bases de datos con opciones libres y abiertas (si encuentro alguna no duden que lo postearé, o si conocen alguna haganmelo saber que lo comento). (Continuar Leyendo sobre Como llevar un control de versiones del código DDL en SQL Server)

post icon

Como reiniciar un campo Identity en SQL Server

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: (Continuar Leyendo sobre Como reiniciar un campo Identity en SQL Server)

post icon

Limpieza del historial de SQL Server

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 (Continuar Leyendo sobre Limpieza del historial de SQL Server)

post icon

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

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 😀 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

(Continuar Leyendo sobre Ejecutar código VisualBasic .Net en Procedimientos Almacenados de SQL Server)

post icon

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


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. (Continuar Leyendo sobre Instalación SQL Server 2008… Una guía más? Porqué no :))

post icon

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

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 (Continuar Leyendo sobre Como programar en n-Capas con C# – SQL Server (Parte 2))

post icon

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

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 (Continuar Leyendo sobre Importar datos de MS Excel 2007 [.xlsx] a SQL Server)

post icon

Capturar Output de los Procedimientos Almacenados de SQL Server con Java

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 (Continuar Leyendo sobre Capturar Output de los Procedimientos Almacenados de SQL Server con Java)

post icon

Cambiar el propietario de un objeto en SQL Server

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 (Continuar Leyendo sobre Cambiar el propietario de un objeto en SQL Server)

post icon

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

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, (Continuar Leyendo sobre Crear backup del Transaction Log y reducir su tamaño en SQL Server)

Página 2 de 3123