ver utiliza usan usa una tablas tabla stored saber que donde conocer como buscar abrir stored-procedures sybase

stored-procedures - utiliza - ver donde se usa una tabla sql



Sybase: obtener una lista de procedimientos almacenados usando una tabla particular (5)

Tengo 500 procedimientos almacenados en una base de datos Sybase. Usando SQL, ¿puedo obtener una lista de todos los procedimientos almacenados que están usando una tabla particular, digamos tbl_books ?


El uso de syscomments como este dejará de funcionar si hay otro nombre de tabla decir tbl_books_new. Una mejor manera sería usar sysdepends

select so1.name from sysobjects so1, sysobjects so2, sysdepends sd where so1.id = sd.id and so2.id = sd.depid and so2.name = ''tbl_books'' and so1.type = ''P''


¿Qué tal algo así como:

select proc_name from sysprocedures where proc_defn like "%tbl_books%"


Usa algo como esto:

Select distinct sysobjects.name , case when sysobjects.type = ''TR'' then ''TRIGGER'' when sysobjects.type = ''P'' then ''PROCEDURE'' when sysobjects.type = ''V'' then ''VIEW'' else ''UNKNOWN'' end type from sysobjects inner join syscomments on sysobjects.id = syscomments.id where syscomments.text like ''%tbl_books%''


Recuerde que esa columna de texto en syscomments es varchar (255), por lo que un procedimiento grande puede constar de muchas líneas en syscomments, por lo tanto, las selecciones anteriores no encontrarán el nombre del procedimiento si el nombre de la tabla que está buscando se ha dividido en 2 filas de texto en syscomments.

Sugiero la siguiente selección, que manejará el caso anterior:

declare @text varchar(100) select @text = "%tbl_books%" select distinct o.name object from sysobjects o, syscomments c where o.id=c.id and o.type=''P'' and (c.text like @text or exists( select 1 from syscomments c2 where c.id=c2.id and c.colid+1=c2.colid and right(c.text,100)+ substring(c2.text, 1, 100) like @text ) ) order by 1

- felicitaciones por esto va al creador de ASEisql


Inicialmente probaría sp_depends .

Syntax: sp_depends objname[, column_name]

Para objname puede proporcionar cualquier nombre de objeto, por ejemplo, una tabla, vista o sproc.