2011-06-15 10 views
13

estoy migración de un SQLS2k legado a 2008R2, y parece que todos los accesos a los datos se realizó a través de procedimientos almacenados, y cualquier consultas personalizadas utilizar el legado *==* sintaxis de combinación externa. Hay más de cien procs, así que no quiero abrirlos individualmente para ver si usa esa sintaxis (la mayoría no), ¿hay alguna manera de consultar los metadatos para obtener una lista de procs/funciones/views?/desencadena, luego recorra buscando las cadenas *= o =*, imprimiendo el nombre del objeto ofensivo?cómo buscar procedimientos almacenados Sql Server 2008 R2 para una cadena?

Mi formación es Oracle, sé cómo encontrar los puntos de vista de metadatos allí, pero yo soy un poco nuevo en SQL Server. La degradación de la versión de compatibilidad no es una opción.

gracias!

+0

Glad que está reparando esto, que el código no debería haber sido utilizado incluso en SQL sServer 2000, ya que no es fiable y no siempre hace una combinación externa, a veces no se unen a una cruz. Afortunadamente, al mismo tiempo eliminará todas las otras combinaciones implícitas en esas consultas, ya que mezclar implícitas y explícitas también puede causar problemas. Las combinaciones implícitas son un antipatrón SQL de todos modos y no deberían usarse en ninguna base de datos. Vea el enlace para ejemplos: http: //stackoverflow.com/questions/1080097/the-multi-part-identifier-could-not-be-bound-on-sql-server-2008/1080407#1080407 – HLGEM

Respuesta

29

Free Red Gate SQL Search?

O consulta sys.sql_modules

SELECT OBJECT_NAME(object_id) 
FROM sys.sql_modules 
WHERE definition LIKE '%=*%' OR definition LIKE '%*=%' 

Nota: vistas INFORMATION_SCHEMA y syscomments truncan por lo que la definición no son fiables.

+0

+1 for Red- Gate SQL Search: ¡herramienta absolutamente indispensable y * GRATUITA * para los programadores de DB (y DBA)! –

+1

@marc_s: Estoy empezando a pensar que recibes comisión ... pero es gratis ... – gbn

+0

¡perfecto! Aceptado :) El único problema es que me dice que todos los activadores de mi revista usan la sintaxis anterior ... ¡FML! – matao

2

problema con el uso de consultas es que estos no funcionan si el procedimiento almacenado se encripta menos que esté ejecutando DAC tipo de conexión.

Esto es donde herramienta de terceros son útiles porque ayudan a hacer esto sin demasiados problemas. Estoy usando ApexSQL Search que es gratis, pero supongo que no puedes equivocarte con Red Gate o cualquier otra herramienta que exista.

Cuestiones relacionadas