Sie können die Systemkataloge nicht aktualisieren, genau wie die Fehlermeldung besagt. Das war seit SQL Server 2000 nicht mehr möglich, und selbst in den Cowboy-Tagen war das selten eine gute Idee. Dazu müssen Sie, wie Gordon sagte, MONTAGE ÄNDERN
. Wenn Sie nur eine einzelne Assembly aktualisieren müssen:
ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
Wenn Sie mehrere haben, können Sie ein Skript mit dynamischem SQL generieren:
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;
Ich glaube nicht, dass Sie die Microsoft-Assemblys herausfiltern müssen, wenn Sie eine bestimmte assembly_id
angegeben haben .