Du kan ikke opdatere systemkatalogerne, ligesom fejlmeddelelsen sagde. Du har ikke været i stand til at gøre dette siden SQL Server 2000, og selv tilbage i de cowboy-dage var det sjældent en god idé. Måden du skal gøre dette på, som Gordon sagde, er at bruge ÆNDRE SAMLING . Hvis du kun har en enkelt samling at opdatere:
ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
Hvis du har flere, kan du generere et script ved hjælp af dynamisk 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;
Jeg tror ikke, du behøver at filtrere Microsoft-samlingerne fra, hvis du har angivet et specifikt assembly_id
.