Nie możesz zaktualizować katalogów systemowych, tak jak w komunikacie o błędzie. Nie było to możliwe od czasu SQL Server 2000, a nawet w tych kowbojskich czasach rzadko było to dobrym pomysłem. Sposób, w jaki musisz to zrobić, jak powiedział Gordon, to użycie ALTER ASSEMBLY
. Jeśli masz do zaktualizowania tylko jeden zespół:
ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
Jeśli masz ich kilka, możesz wygenerować skrypt za pomocą dynamicznego 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;
Nie sądzę, że musisz odfiltrować zestawy Microsoft, jeśli podałeś określony assembly_id
.