Vous ne pouvez pas mettre à jour les catalogues système, tout comme le message d'erreur l'a dit. Vous n'avez pas pu le faire depuis SQL Server 2000, et même à l'époque des cow-boys, c'était rarement une bonne idée. La façon dont vous devez le faire, comme l'a dit Gordon, est d'utiliser ALTER ASSEMBLY
. Si vous n'avez qu'un seul assemblage à mettre à jour :
ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
Si vous en avez plusieurs, vous pouvez générer un script en SQL dynamique :
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;
Je ne pense pas que vous ayez besoin de filtrer les assemblys Microsoft si vous avez fourni un assembly_id
spécifique .