Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak obejść ten rodzaj błędu:aktualizacje ad hoc katalogów systemowych są niedozwolone.?

Nie możesz zaktualizować katalogów systemowych, tak jak w komunikacie o błędzie. Nie było to możliwe od czasu SQL Server 2000, a nawet w tych kowbojskich czasach rzadko było to dobrym pomysłem. Sposób, w jaki musisz to zrobić, jak powiedział Gordon, to użycie ALTER ASSEMBLY . Jeśli masz do zaktualizowania tylko jeden zespół:

ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;

Jeśli masz ich kilka, możesz wygenerować skrypt za pomocą dynamicznego 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;

Nie sądzę, że musisz odfiltrować zestawy Microsoft, jeśli podałeś określony assembly_id .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa SET ROWCOUNT w SQL Server

  2. Problem w dynamicznym przechylaniu + serwer sql 2005

  3. Jak usunąć końcowe spacje z zapytania SQL Server 2008 podczas eksportowania do csv?

  4. Zaktualizowałem sterownik ODBC programu SQL Server i negatywnie wpłynęło to na wydajność. Co mogę zrobić?

  5. Nazwa kolumny i/lub nazwa tabeli jako parametry