Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come si supera questo tipo di errore:non sono consentiti aggiornamenti ad hoc ai cataloghi di sistema.?

Non è possibile aggiornare i cataloghi di sistema, proprio come diceva il messaggio di errore. Non sei stato in grado di farlo da SQL Server 2000 e anche ai tempi dei cowboy raramente era una buona idea. Il modo in cui devi farlo, come ha detto Gordon, è usare ALTER ASSEMBLY . Se hai un solo assieme da aggiornare:

ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;

Se ne hai più, puoi generare uno script utilizzando SQL dinamico:

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;

Non credo che tu debba filtrare gli assembly Microsoft se hai fornito un assembly_id specifico .