ALTER EXTERNAL LANGUAGE (Transact-SQL)

Si applica a:SQL Server 2019 (15.x)

Modifica il contenuto in un'estensione di linguaggio esterno esistente nel database.

Sintassi

ALTER EXTERNAL LANGUAGE language_name  
[ AUTHORIZATION owner_name ]
{
    SET <file_spec>
    | ADD <file_spec>
    | REMOVE PLATFORM <platform> 
}
[ ; ]  

<file_spec> ::=  
{
    ( CONTENT = {<external_lang_specifier> | <content_bits>,
    FILE_NAME = <external_lang_file_name>
    [, PLATFORM = <platform> ]
    [, PARAMETERS = <external_lang_parameters> ]
    [, ENVIRONMENT_VARIABLES = <external_lang_env_variables> ] )
}

<external_lang_specifier> :: =  
{
    '[file_path\]os_file_name'  
}

<content_bits> :: =  
{
    varbinary_literal
   | varbinary_expression
}

<external_lang_file_name> :: =  
'extension_file_name'

<platform> :: =
{
   WINDOWS
  | LINUX
}

< external_lang_parameters > :: =  
'extension_specific_parameters'

Argomenti

language_name

I linguaggi sono oggetti con ambito di database. I nomi dei linguaggi devono essere univoci all'interno del database.

owner_name

Specifica il nome dell'utente o del ruolo che è proprietario del linguaggio esterno. Se viene omesso, la proprietà viene assegnata all'utente corrente. A seconda delle autorizzazioni, è possibile che sia necessario concedere ad altri utenti autorizzazione esplicita per eseguire script con un linguaggio specifico.

file_spec

Specifica il contenuto dell'estensione del linguaggio. È consentito un solo filespec per un linguaggio specifico, per ogni piattaforma.

external_lang_specifier

Percorso file completo al file con estensione zip o al file tar.gz che contiene il codice delle estensioni. Può essere un percorso a un file con estensione zip (in Windows) o al file tar.gz (in Linux).

content_bits

Specifica il contenuto del linguaggio come valore letterale esadecimale, analogamente agli assembly. Questa opzione è utile se è necessario creare un linguaggio o modificare un linguaggio esistente (e si hanno le autorizzazioni necessarie a tale scopo), ma il file system del server è soggetto a restrizioni e non è possibile copiare i file di libreria in un percorso a cui il server può accedere.

external_lang_file_name

Nome del file con estensione dll o so. Questo nome è necessario per identificare il file corretto, nei casi in cui il file ZIP o TAR.GZ specificato da <external_lang_specifier> contenga diversi file DDL o SO.

external_lang_parameters

Consente di assegnare un set di parametri al runtime del linguaggio esterno. I valori dei parametri sono disponibili per il runtime esterno dopo che il processo esterno è stato avviato. Le variabili di ambiente sono invece accessibili all'estensione del linguaggio prima dell'avvio del processo esterno.

external_lang_env_variables

Consente di assegnare un set di variabile di ambiente al runtime del linguaggio esterno prima dell'avvio del processo esterno. Un esempio di variabile di ambiente è ad esempio la home directory del runtime stesso. Ad esempio: JRE_HOME.

platform

Questo parametro è necessario per gli scenari ibridi del sistema operativo. In un'architettura ibrida il linguaggio deve essere registrato una volta per ogni piattaforma. Il nome di piattaforma e linguaggio sarà la chiave univoca per ogni linguaggio esterno. Se non viene specificata una piattaforma, viene usato il sistema operativo corrente.

Osservazioni:

PARAMETERS e ENVIRONMENT_VARIABLES non sono attualmente supportati.

Autorizzazioni

È necessaria l'autorizzazione ALTER ANY EXTERNAL LANGUAGE. Per impostazione predefinita, ogni utente con dbo che è membro del ruolo db_owner ha le autorizzazioni per modificare un linguaggio esterno. Per tutti gli altri utenti, devi dare loro esplicitamente il permesso usando un'istruzione GRANT , specificando ALTER ANY EXTERNAL LANGUAGE come privilegio.

Esempi

Modificare un linguaggio esterno in un database

L'esempio seguente aggiunge un linguaggio esterno denominato Java a un database in SQL Server in Windows.

ALTER EXTERNAL LANGUAGE Java 
SET (CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll');
GO

Vedi anche

CREATE EXTERNAL LANGUAGE (Transact-SQL)
DROP EXTERNAL LANGUAGE (Transact-SQL)
sys.external_languages
sys.external_language_files