Creé una tabla sobre el entorno de desarrollo para fines de prueba y hay pocos sp's que están actualizando esta tabla. Ahora tengo que descartar esta tabla e identificar todos los sp que hacen referencia a esta tabla. Estoy enfrentando dificultades para encontrar la lista de todos los sp. Sugiera alguna consulta suponiendo que el nombre de la tabla es 'x' y que la base de datos es sql server 2005.
sql
tsql
sql-server-2005
DJay
fuente
fuente
Respuestas:
Por cierto, aquí hay un recurso útil para este tipo de preguntas: Preguntas frecuentes sobre el catálogo del sistema del servidor SQL
fuente
ROUTINE_DEFINITION
encendidoINFORMATION_SCHEMA.ROUTINES
?set @Query = “SELECT * FROM Object_I_Need_To_Find_References…”;
Lo siguiente funciona en SQL2008 y superior. Proporciona una lista de procedimientos almacenados y funciones.
fuente
a veces las consultas anteriores no dan el resultado correcto, hay un procedimiento almacenado incorporado disponible para obtener las dependencias de la tabla como:
fuente
Una forma sin consulta sería utilizar Sql Server Management Studio.
Localice la tabla, haga clic derecho y elija "Ver dependencias".
EDITAR
Pero, como dijeron los comentaristas, no es muy confiable.
fuente
La siguiente consulta buscará todos los nombres de Procedimiento almacenado y la definición correspondiente de esos SP
fuente
Solo tenga en cuenta que esto también activará los SP donde el nombre de la tabla está en los comentarios o donde el nombre de la tabla es una subcadena de otro nombre de tabla que se está utilizando. Por ejemplo, si tiene tablas llamadas "test" y "test_2" e intenta buscar SP con "test", obtendrá resultados para ambos.
fuente
syscomments
de esta manera no es confiable para procedimientos largos, ya que divide la definición en fragmentos de 4000 caracteres en varias filas.sys.sql_modules
evita estosys.sql_modules
en su lugar.La consulta a continuación solo funciona cuando se buscan dependencias en una tabla y no en las de una columna:
Sin embargo, la siguiente consulta es la mejor opción si desea buscar todo tipo de dependencias, no se pierde nada. En realidad, proporciona más información de la requerida.
fuente
Esto funcionará si tiene que mencionar el nombre de la tabla.
fuente
En Management Studio, puede hacer clic derecho en la tabla y hacer clic en 'Ver dependencias'
de lo que puede ver una lista de objetos que tienen dependencias con su tabla:
fuente
Básicamente tienes 2 opciones:
----Opción 1
----Opcion 2
Estas 2 consultas le proporcionarán todos los procedimientos almacenados que hacen referencia a la tabla que desea. Esta consulta se basa en 2 tablas sys que son sysobjects y syscomments. El sysobjects es donde se almacenan todos los nombres de sus objetos DB, esto incluye los procedimientos almacenados.
Los comentarios del sistema contienen el texto de todos sus procedimientos.
Si consulta: SELECCIONE * DESDE syscomments
Tendrá una tabla que contiene la identificación, que es la asignación a la tabla de sysobjects con el texto contenido en los procedimientos almacenados como la última columna.
fuente
Prueba esto
fuente