エラー メッセージにあるように、システム カタログを更新することはできません。 SQL Server 2000 以来、これを行うことはできませんでした。カウボーイの時代にさかのぼっても、それが良い考えであることはめったにありませんでした。ゴードンが言ったように、これを行う必要がある方法は、 アセンブリの変更
.更新するアセンブリが 1 つしかない場合:
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;
特定の assembly_id
を指定した場合、Microsoft アセンブリを除外する必要はないと思います .