sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kommer du forbi denne form for fejl:Ad hoc-opdateringer til systemkataloger er ikke tilladt.?

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 .




  1. Hvordan formaterer jeg mine orakelforespørgsler, så kolonnerne ikke ombrydes?

  2. læsning fra MySQL er hurtigere, eller læsning fra en fil er hurtigere?

  3. Sådan kalder du lagret procedure ved hjælp af PHP og SQL Server 2008

  4. Sådan gemmer du en udfyldt polygon point folder.draw til mysql tabel