Machetes Varios

apuntes varios erp cwa logic ( ahora SoftLand Logic ) – sql y veremos que otra cosa

sp_findreferences


sql magazine id: 50250

http://www.sqlmag.com/Articles/ArticleID/50250/50250.html

Muestra todas las tablas,sp,vistas y otros elementos que contienen referencias a un determinado string.

Ejemplo de Ejecución:

sp_FindReferences ‘VTMCLH_NROCTA’,’S’

código:

use master
IF (object_id(‘sp_FindReferences’) IS NOT NULL)
BEGIN
PRINT ‘Dropping: sp_FindReferences’
DROP procedure sp_FindReferences
END
PRINT ‘Creating: sp_FindReferences’
GO
CREATE PROCEDURE sp_FindReferences
(
@string varchar(1000) = ”,
@ShowReferences char(1) = ‘N’
)
AS
/****************************************************************************/
/* */
/* TITLE: sp_FindReferences */
/* */
/* DATE: 18 February, 2004 */
/* */
/* AUTHOR: WILLIAM MCEVOY */
/* */
/****************************************************************************/
/* */
/* DESCRIPTION: SEARCH SYSCOMMENTS FOR INPUT STRING, OUTPUT NAME OF OBJECT */
/* */
/****************************************************************************/
set nocount on

declare @errnum int ,
@errors char(1) ,
@rowcnt int ,
@output varchar(255)

select @errnum = 0 ,
@errors = ‘N’ ,
@rowcnt = 0 ,
@output = ”

/****************************************************************************/
/* INPUT DATA VALIDATION */
/****************************************************************************/

/****************************************************************************/
/* M A I N P R O C E S S I N G */
/****************************************************************************/

— Create temp table to hold results
create table #Results
(
Name varchar(55),
Type varchar(12),
DateCreated datetime,
ProcLine varchar(4000)
)

IF (@ShowReferences = ‘N’)
BEGIN
insert into #Results
select distinct
‘Name’ = convert(varchar(55),SO.name),
‘Type’ = SO.type,
crdate,

from sysobjects SO
join syscomments SC on SC.id = SO.id
where SC.text like ‘%’ + @string + ‘%’
union
select distinct
‘Name’ = convert(varchar(55),SO.name),
‘Type’ = SO.type,
crdate,

from sysobjects SO
where SO.name like ‘%’ + @string + ‘%’
union
select distinct
‘Name’ = convert(varchar(55),SO.name),
‘Type’ = SO.type,
crdate,

from sysobjects SO
join syscolumns SC on SC.id = SO.ID
where SC.name like ‘%’ + @string + ‘%’
order by 2,1
END
ELSE
BEGIN
insert into #Results
select
‘Name’ = convert(varchar(55),SO.name),
‘Type’ = SO.type,
crdate,
‘Proc Line’ = text
from sysobjects SO
join syscomments SC on SC.id = SO.id
where SC.text like ‘%’ + @string + ‘%’
union
select
‘Name’ = convert(varchar(55),SO.name),
‘Type’ = SO.type,
crdate,
‘Proc Line’ = ”
from sysobjects SO
where SO.name like ‘%’ + @string + ‘%’
union
select
‘Name’ = convert(varchar(55),SO.name),
‘Type’ = SO.type,
crdate,
‘Proc Line’ = ”
from sysobjects SO
join syscolumns SC on SC.id = SO.ID
where SC.name like ‘%’ + @string + ‘%’
order by 2,1
END

IF (@ShowReferences = ‘N’)
BEGIN
select Name,
‘Type’ = Case (Type)
when ‘P’ then ‘Procedure’
when ‘TR’ then ‘Trigger’
when ‘X’ then ‘Xtended Proc’
when ‘U’ then ‘Table’
when ‘C’ then ‘Check Constraint’
when ‘D’ then ‘Default’
when ‘F’ then ‘Foreign Key’
when ‘K’ then ‘Primary Key’
when ‘V’ then ‘View’
else Type
end,
DateCreated
from #Results
order by 2,1
END
ELSE
BEGIN
select Name,
‘Type’ = Case (Type)
when ‘P’ then ‘Procedure’
when ‘TR’ then ‘Trigger’
when ‘X’ then ‘Xtended Proc’
when ‘U’ then ‘Table’
when ‘C’ then ‘Check Constraint’
when ‘D’ then ‘Default’
when ‘F’ then ‘Foreign Key’
when ‘K’ then ‘Primary Key’
when ‘V’ then ‘View’
else Type
end,
DateCreated,
ProcLine
from #Results
order by 2,1
END

drop table #Results

GO
IF (object_id(‘sp_FindReferences’) IS NOT NULL)
PRINT ‘Procedure created.’
ELSE
PRINT ‘Procedure NOT created.’
GO

agosto 25, 2006 - Posted by | sql magazine, Transact SQL

Aún no hay comentarios.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: