none
Herramienta para controlar dependencias de procedimientos almacenados.

    Question

  • Buenas tardes, alguien conoce alguna herramienta, en la cual pueda ir controlando que procedimientos almacenados se usan en determinada opción de mi aplicación, trato con mucho cuidado siempre de estar pendiente que al modificar algún procedimiento almacenado las opciones de la aplicación o las llamadas a otros procedimientos almacenados no vayan a producir algún error, pero a pesar de ello, en los momentos de "carrera", algunas veces me es un poco más difícil controlarlo.

    La idea es que al modificar alguna opción de la aplicación primero determinar que procedimientos almacenados se ven afectados y si éstos procedimientos almacenados también son usados por otras opciones en el sistema, algo así como cuando uno le da click derecho sobre el procedure y ve sus dependencias.

    Espero haberme dado a explicar.

    Saludos y gracias por su tiempo,

     


    J.Diaz
    Monday, September 20, 2010 11:38 PM

Answers

  • Puede usted brindar un ejemplo de a qué se refiere cuando dice "al modificar alguna opción de la aplicación primero determinar que procedimientos almacenados se ven afectados y si éstos procedimientos almacenados también son usados por otras opciones en el sistema".

    No alcanzo a entender si usted está planteando un problema que sucede en tiempo de diseño de la aplicación o en tiempo de ejecución de la misma.

    Por si acaso le sirve, la forma de saber las dependencias usando el Management Studio se explican acá:

    Cómo ver las dependencias de un procedimiento almacenado (SQL Server Management Studio)
    http://technet.microsoft.com/es-es/library/ms345404.aspx
    Otra posibilidad es usar la vista de sistema sys.sysdepends:
    sys.sysdepends (Transact-SQL)

    Gustavo Larriera Sosa, Microsoft MVP | ascii164.blogspot.com | /*Este mensaje se proporciona tal como es, sin garantías de ninguna clase.*/
    Tuesday, September 21, 2010 12:47 AM
    Moderator
  • Realmente no es muy práctico (ni fiable) el conocer esas dependencias por medio de una hoja de cálculo.

    Si no puedes confiar en sys.sysdepends, lo suyo es crearse un proceso que compruebe a qué objetos llama un procedimiento almacenado, para lo cual puedes apoyarte en sys.sql_modules (http://msdn.microsoft.com/es-es/library/ms175081.aspx).

    En cualquier caso, si buscas un poco podrás encontrar multitud de ejemplos de cómo se encuentran esas dependencias. De todos los que hay, el que mejor resultado me ha dado a mí ha sido el que aparece en http://www.sqlmag.com/article/tsql3/a-dependency-checker-you-can-depend-on.aspx. El problema es que la revista es de pago, aunque no es muy cara la suscripción y los artículos suelen merecer la pena.

    Tuesday, September 21, 2010 7:42 AM

All replies

  • Puede usted brindar un ejemplo de a qué se refiere cuando dice "al modificar alguna opción de la aplicación primero determinar que procedimientos almacenados se ven afectados y si éstos procedimientos almacenados también son usados por otras opciones en el sistema".

    No alcanzo a entender si usted está planteando un problema que sucede en tiempo de diseño de la aplicación o en tiempo de ejecución de la misma.

    Por si acaso le sirve, la forma de saber las dependencias usando el Management Studio se explican acá:

    Cómo ver las dependencias de un procedimiento almacenado (SQL Server Management Studio)
    http://technet.microsoft.com/es-es/library/ms345404.aspx
    Otra posibilidad es usar la vista de sistema sys.sysdepends:
    sys.sysdepends (Transact-SQL)

    Gustavo Larriera Sosa, Microsoft MVP | ascii164.blogspot.com | /*Este mensaje se proporciona tal como es, sin garantías de ninguna clase.*/
    Tuesday, September 21, 2010 12:47 AM
    Moderator
  • Gracias Gustavo por su valioso tiempo al ayudarme.

    El inconveniente que estoy teniendo actualmente es cuando se solicita alguna modificación a cualquiera de las opciones del sistema que está en producción.

    Por el momento tengo en un archivo de excel cada una de las opciones de mi sistema por ejemplo:

    Opción del Sistema: Reporte de Antiguedades de Saldos.

    Procedimientos Utilizados : SP_AntigCXCNormal, SP_AntigCXCa30dias,SP_AntigCXCa60dias,...

    Opción del Sistema: Consolidado de Antiguedad de Saldos Regional

    Procedimientos Utilizados : SP_AntigCXCNormal, SP_AntigCXCa30dias,SP_AntigCXCa60dias,...

     

    Hace una semana en una de las opciones del sistema en producción que imprime la antiguedad de saldos de las cuentas por cobrar, el Depto. de Cobros solicitó una mejora en la presentación de dicho reporte, para poder visualizarlo, en el sistema en producción se ejecutan tres diferentes procedimientos almacenados, a uno de éstos tres procedures tuve que realizarle una modificación pero olvidé que dicho procedimiento también se utilizaba en otra opción del sistema (Consolidado de Antiguedad de Saldos Regional), la cual, al ejecutar dicha opción, me provocó un error porque no había controlado la nueva modificación que había realizado al procedimiento almacenado.

    Generalmente, siempre trato en la medida de lo posible, tener en cuenta cuales procedimientos almacenados se ejecutan en cada una de las opciones del sistema, pero manejamos 17 bases de datos y a veces estar actualizando el libro de Excel como que es un poco engorroso.

    Lo que quisiera es encontrar una herramienta en la cual yo pueda ir asociando, todos los procedimientos almacenados a mis opciones predefinidas del sistema y sustituir dicho libro de Excel, hacía referencia a las dependencias en los procedimientos almacenados porque es más o menos lo que ando buscando.

    Disculpas por lo extenso del mensaje, espero ser entendida mi necesidad,

    Agradezco nuevamente su ayuda, 

    Jorge


    J.Diaz
    Tuesday, September 21, 2010 5:41 AM
  • Realmente no es muy práctico (ni fiable) el conocer esas dependencias por medio de una hoja de cálculo.

    Si no puedes confiar en sys.sysdepends, lo suyo es crearse un proceso que compruebe a qué objetos llama un procedimiento almacenado, para lo cual puedes apoyarte en sys.sql_modules (http://msdn.microsoft.com/es-es/library/ms175081.aspx).

    En cualquier caso, si buscas un poco podrás encontrar multitud de ejemplos de cómo se encuentran esas dependencias. De todos los que hay, el que mejor resultado me ha dado a mí ha sido el que aparece en http://www.sqlmag.com/article/tsql3/a-dependency-checker-you-can-depend-on.aspx. El problema es que la revista es de pago, aunque no es muy cara la suscripción y los artículos suelen merecer la pena.

    Tuesday, September 21, 2010 7:42 AM