Bạn không thể cập nhật danh mục hệ thống, giống như thông báo lỗi đã nói. Bạn đã không thể làm điều này kể từ SQL Server 2000, và thậm chí trong những ngày cao bồi đó hiếm khi là một ý tưởng hay. Cách bạn cần làm điều này, như Gordon đã nói, là sử dụng ALTER ASSEMBLY
. Nếu bạn chỉ có một lắp ráp duy nhất để cập nhật:
ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
Nếu bạn có nhiều, bạn có thể tạo một tập lệnh bằng SQL động:
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;
Tôi không nghĩ rằng bạn cần lọc ra các tập hợp Microsoft nếu bạn đã cung cấp một assembly_id
cụ thể .