lunes, 15 de febrero de 2016

¿Donde tocamos el campo...? en sqlServer


Cada cierto tiempo me veo en la necesidad de ver en que partes se hace uso de un cierto campo, o tabla, ... para ver el impacto de algunas modificaciones. Se que hay herramientas para esto, sqlsearch es buena, pero muchas veces me es mas rápido usar el script que preparé hace un tiempo.
USE  BBDD

declare @sbus1 varchar (200)
declare @sbus2 varchar (200)
set @sbus1  =  'cadenaBuscada'
set @sbus2  =  @sbus1

select distinct o.name
    , o.xtype 
    , case o.type 
    when 'AF' then 'Función de agregado (CLR)'
    when 'C' then 'Restricción CHECK'
    when 'D' then 'Valor predeterminado o restricción DEFAULT'
    when 'F' then 'Restricción FOREIGN KEY'
    when 'L' then 'Registro'
    when 'FN' then 'Función escalar'
    when 'FS' then 'Función escalar del ensamblado (CLR)'
    when 'FT' then 'Función con valores de tabla de ensamblado (CLR)'
    when 'IF' then 'Función de tabla en línea'
    when 'IT' then 'Tabla interna'
    when 'P' then 'Procedimiento almacenado'
    when 'PC' then 'Procedimiento almacenado del ensamblado (CLR)'
    when 'PK' then 'Restricción PRIMARY KEY (type es K)'
    when 'RF' then 'Procedimiento almacenado de filtro de replicación'
    when 'S' then 'Tabla del sistema'
    when 'SN' then 'Sinónimo'
    when 'SQ' then 'Cola de servicio'
    when 'TA' then 'Desencadenador DML del ensamblado (CLR)'
    when 'TF' then 'Función de tabla'
    when 'TR' then 'Desencadenador DML de SQL'
    when 'TT' then 'Tipo de tabla'
    when 'U' then 'Tabla de usuario'
    when 'UQ' then 'Restricción UNIQUE (type es K)'
    when 'V' then 'Vista'
    when 'X' then 'Procedimiento almacenado extendido '
  end as Tipo
from syscomments c
 inner join sysobjects o  on o.id=c.id
 where (charindex( @sbus1,text)>0 or charindex( @sbus2,text)>0)  
and o.name <> @sbus1  and o.name <> @sbus2  
order by tipo  
 
El objetivo de estos post son para no olvidar donde deje los "dichosos" scripts, por lo que al final será como un cajón de sastre para mis necesidades puntuales. De todos modos si veis algo mal, algo mejorable, etc... no dudéis en comentarlo.

No hay comentarios:

Publicar un comentario