sql >> Database >  >> RDS >> Sqlserver

Hoe kom je voorbij dit soort fouten:Ad hoc updates van systeemcatalogi zijn niet toegestaan.?

U kunt de systeemcatalogi niet bijwerken, net zoals de foutmelding zei. Dat is sinds SQL Server 2000 niet meer gelukt, en zelfs in die cowboytijd was het zelden een goed idee. De manier waarop je dit moet doen, zoals Gordon zei, is om MONTAGE WIJZIGEN . Als u maar één assembly hoeft bij te werken:

ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;

Als je er meerdere hebt, kun je een script genereren met dynamische 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;

Ik denk niet dat je de Microsoft-assembly's hoeft uit te filteren als je een specifieke assembly_id hebt opgegeven .




  1. JOIN op applicatieniveau met WHERE en ORDER BY op N postgresql-shards

  2. System.Data.SqlTypes.SqlTypeException:SqlDateTime overloop

  3. 5 beveiligingsvoordelen van cloudgebaseerde oplossingen voor databasebewaking

  4. Oracle-query optimaliseren