Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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