lunes, 29 de agosto de 2011

Búsqueda de objetos dentro de programables (Stored procedures, vistas, funciones, triggers) de Microsoft SQL Server

 

Antecedentes:

Se tiene la necesidad de encontrar en cuantos y cuales (En donde exactamente) programables (Stored procedures, vistas, funciones, triggers) se encuentra un objeto de base de datos (Tabla, campo, índice o programable).

Esto resulta muy útil para realizar un análisis de impacto. Ponemos un ejemplo, ampliar la longitud del campo “CLABE” de la tabla “CuentasBancarias” ya que no se da abasto para las longitudes manejadas en el sector bursátil.

Solución propuesta

Se cuenta con dos Stored Procedures que nos van a apoyar a esta búsqueda. El primero se llama sp_helptext_Plus y no es otra cosa que una versión modificada del stored del sistema de nombre sp_Helptext que nos ayuda a obtener el código de cualquier programable.

El otro stored procedure es el que hace el trabajo pesado. Se llama P_BusCadTxtProgramables y el ejemplo de ejecución para la problemática planteada en este caso es la siguiente:

 

EXEC P_BusCadTxtProgramables   

@PS_Cadena = ‘CuentasBancarias’,

@PS_TabFisica ='tmpCuentasBancarias’

En donde el parámetro @PS_Cadena recibe el valor de la cadena de caractéres que se desea cnontrar y el parámetro @PS_TabFisica recibe el nombre de la tabla física en donde se van a guardar los resultados de la búsqueda. Si se ejecuta de esta manera, el stored procedure genera la tabla ‘tmpCuentasBancarias’ y posteriormente puede ser consultada por el usuario.

 

Si solo se le envía el primer parámetro:

EXEC P_BusCadTxtProgramables   

@PS_Cadena = ‘CuentasBancarias’

Los resultado de la búsqueda son desplegados al final de le ejecución. Para cualquier duda, quedo a sus órdenes.

jueves, 11 de agosto de 2011

Convertir números a letras en Microsoft SQL Server

 

Me topé con el problema de actualizar masivamente un campo que un componente de la aplicación había calculado en base a un importe de la misma tabla. Debido a que necesitaba hacer la actualización masiva tanto de importes numéricos como de su equivalente en letras, busqué en internet y encontré estas 5 funciones jutas en un BLOG de un colega.

Las funciones las pueden bajar en un archivo comprimido en esta liga. Las funciones están numeradas en base a como se deben de generar en la base de datos, siendo la última función la que realmente hace el trabajo.

Dentro de las funciones hay comentarios con instrucciones sobre su uso, así como ejemplos de ejecución, espero les sean de utilidad