He heredado un proyecto bastante importante, que hace un uso extensivo de las vistas de SQL Server (2005 y 2008).SQL Server 2008 - sp_refreshview bombardeando algunas vistas
Un paso en el proceso de compilación es llamar al procedimiento almacenado del sistema sp_refreshviews
, para asegurarse, ningún cambio en ninguna tabla ha roto nuestras vistas. Esto funciona bien .... excepto por unos tres o cuatro (de más de 200 puntos de vista ....)
Con esos, sólo bombas fuera - da mensajes de error extraños como
Msg 15165, nivel 16, Estado 1, Procedimiento sp_refreshsqlmodule_internal, Línea 55
no se pudo encontrar el objeto 'vYourViewNameHere' o usted no tiene permiso .
que es totalmente equivocado - que hace la vista existen, y que sin duda puede seleccionar de ella.
Parece que no puedo encontrar ninguna buena información concisa sobre por qué sucede esto, ¿qué lo desencadena ... alguna idea? ¿Hay algo que pueda hacer para detectar vistas tan problemáticas? ¿Puedo cambiar su definitino para que sean actualizables nuevamente?
Actualización: He registrado un informe de error en Microsoft Connect para esto - si acepta que esto parece extraño y necesita ser reparado, ¡vota por él!
¿Es esta [artículo Conectar] (http://connectppe.microsoft.com/SQLServer/feedback/details/669621/sp-refreshview-fails-for-views-that-were-created-without-explicitly -calificando-su-nombre-esquema) relevante para su situación? –
@Joe Stefanelli: lo probé - el mismo resultado :-(Dejé caer una de esas vistas problemáticas, y la recreé con el esquema explícito en su lugar - aún no me gusta que me actualicen ... –
sp_refreshview requiere permiso alternativo en la vista en cuestión. Mencionó que puede seleccionar, pero ¿puede modificar la vista individual con el mismo loging que está ejecutando sp_refreshview en? – RThomas