sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo supera este tipo de error:no se permiten las actualizaciones ad hoc de los catálogos del sistema?

No puede actualizar los catálogos del sistema, como decía el mensaje de error. No ha podido hacer esto desde SQL Server 2000, e incluso en aquellos días de vaquero rara vez era una buena idea. La forma en que necesita hacer esto, como dijo Gordon, es usar ALTER ASSEMBLY . Si solo tiene un ensamblaje para actualizar:

ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;

Si tiene varios, puede generar un script usando SQL dinámico:

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'ALTER ASSEMBLY ' + QUOTENAME(name)
  + ' WITH PERMISSION_SET = EXTERNAL_ACCESS;
  '
FROM sys.assemblies WHERE assembly_id = <someInt>; -- or IN (<some range>)

PRINT @sql;
-- EXEC sp_executesql @sql;

No creo que necesite filtrar los ensamblajes de Microsoft si ha proporcionado un assembly_id específico .