sql >> データベース >  >> RDS >> Sqlserver

この種のエラーをどのように回避しますか:システム カタログへのアドホック更新は許可されていません。

    エラー メッセージにあるように、システム カタログを更新することはできません。 SQL Server 2000 以来、これを行うことはできませんでした。カウボーイの時代にさかのぼっても、それが良い考えであることはめったにありませんでした。ゴードンが言ったように、これを行う必要がある方法は、 アセンブリの変更 .更新するアセンブリが 1 つしかない場合:

    ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
    

    複数ある場合は、動的 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;
    

    特定の assembly_id を指定した場合、Microsoft アセンブリを除外する必要はないと思います .




    1. 1 つのストアド プロシージャでテーブルから最後の N 行を取得する

    2. 何人のユーザーがサポートにアクセスできますか?

    3. データベースへの直接ストリーミング

    4. 警告:mysqli_connect():(HY000 / 1045):ユーザー'username' @'localhost'のアクセスが拒否されました(パスワードを使用:YES)