Не можете да актуализирате системните каталози, точно както се казва в съобщението за грешка. Не сте били в състояние да направите това от SQL Server 2000 и дори в онези каубойски дни това рядко е било добра идея. Начинът, по който трябва да направите това, както каза Гордън, е да използвате ALTER ASSEMBLY
. Ако имате само една сглобка за актуализиране:
ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
Ако имате няколко, можете да генерирате скрипт с помощта на динамичен SQL:
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;
Не мисля, че е необходимо да филтрирате сборките на Microsoft, ако сте предоставили конкретен assembly_id
.