Utilizo lo siguiente para buscar cadenas en mis procedimientos almacenados:
use DBname
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%xxx%'
¿Es fácil modificar lo anterior para que busque nombres de tablas en una base de datos específica "DBname"?
sql
sql-server
sql-server-2008-r2
por qué
fuente
fuente
fuente
and is_ms_shipped = 0;
no parece hacer muchoSi desea buscar en todas las tablas en todas las bases de datos de todo el servidor y obtener resultados, puede hacer uso del procedimiento sp_MSforeachdb no documentado :
fuente
Supongo que desea pasar el nombre de la base de datos como parámetro y no solo ejecutar:
Si es así, puede usar SQL dinámico para agregar el nombre de la base de datos a la consulta:
fuente
También puede utilizar el botón Filtro para filtrar tablas con una determinada cadena. Puede hacer lo mismo con los procedimientos almacenados y las vistas.
fuente
Agregando a la respuesta de @ [RichardTheKiwi].
Siempre que busco una lista de tablas, en general quiero seleccionar entre todas ellas o eliminarlas. A continuación se muestra un script que genera esos scripts para usted.
El script de selección generado también agrega una columna tableName para que sepa qué tabla está viendo:
fuente
también puede utilizar el comando show.
fuente
Sé que este es un hilo antiguo, pero si prefiere una búsqueda que no distingue entre mayúsculas y minúsculas:
fuente
Quiero publicar una solución simple para cada esquema que tenga. Si está utilizando MySQL DB, simplemente puede obtener de su esquema todo el nombre de la tabla y agregar la condición WHERE-LIKE. También puede hacerlo con la línea de comando habitual de la siguiente manera:
donde
tables_in_<your_shcema_name>
devuelve el nombre delSHOW TABLES
comando de la columna .fuente