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 2017 (14.x) e versioni
successive di Istanza gestita di SQL di Azure
Modifica il contenuto di una libreria di pacchetti esterna esistente.
Nota
In SQL Server 2017 (14.x), sono supportati il linguaggio R e la piattaforma Windows. R, Python e i linguaggi esterni nelle piattaforme Windows e Linux sono supportati in SQL Server 2019 (15.x) e versioni successive.
Sintassi per SQL Server 2019
ALTER EXTERNAL LIBRARY library_name
[ AUTHORIZATION owner_name ]
SET <file_spec>
WITH ( LANGUAGE = <language> )
[ ; ]
<file_spec> ::=
{
(CONTENT = { <client_library_specifier> | <library_bits> | NONE}
[, PLATFORM = <platform> )
}
<client_library_specifier> :: =
{
'[\\computer_name\]share_name\[path\]manifest_file_name'
| '[local_path\]manifest_file_name'
| '<relative_path_in_external_data_source>'
}
<library_bits> :: =
{
varbinary_literal
| varbinary_expression
}
<platform> :: =
{
WINDOWS
| LINUX
}
<language> :: =
{
'R'
| 'Python'
| <external_language>
}
Sintassi per SQL Server 2017
ALTER EXTERNAL LIBRARY library_name
[ AUTHORIZATION owner_name ]
SET <file_spec>
WITH ( LANGUAGE = 'R' )
[ ; ]
<file_spec> ::=
{
(CONTENT = { <client_library_specifier> | <library_bits> | NONE}
[, PLATFORM = WINDOWS )
}
<client_library_specifier> :: =
{
'[\\computer_name\]share_name\[path\]manifest_file_name'
| '[local_path\]manifest_file_name'
| '<relative_path_in_external_data_source>'
}
<library_bits> :: =
{
varbinary_literal
| varbinary_expression
}
Sintassi per Istanza gestita di SQL di Azure
CREATE EXTERNAL LIBRARY library_name
[ AUTHORIZATION owner_name ]
FROM <file_spec> [ ,...2 ]
WITH ( LANGUAGE = <language> )
[ ; ]
<file_spec> ::=
{
(CONTENT = <library_bits>)
}
<library_bits> :: =
{
varbinary_literal
| varbinary_expression
}
<language> :: =
{
'R'
| 'Python'
}
Argomenti
LIBRARY_NAME
Specifica il nome di una libreria di pacchetti esistente. Le librerie hanno un ambito di tipo utente. I nomi delle librerie devono essere univoci nel contesto di un utente o proprietario specifico.
Il nome della libreria non può essere assegnato arbitrariamente. È quindi necessario usare il nome previsto dal runtime di chiamata quando viene caricato il pacchetto.
OWNER_NAME
Specifica il nome dell'utente o del ruolo che è proprietario della libreria esterna.
FILE_SPEC
Specifica il contenuto del pacchetto per una piattaforma specifica. È supportato soltanto un elemento di tipo file per piattaforma.
Il file può essere specificato usando il percorso locale o il percorso di rete. Se l'opzione dell'origine dati è specificata, il nome del file può essere un percorso relativo che riguarda il contenitore a cui si fa riferimento in EXTERNAL DATA SOURCE.
Facoltativamente, è possibile specificare una piattaforma del sistema operativo per il file. È consentito un solo elemento di tipo file o un contenuto per piattaforma del sistema operativo per un linguaggio o un runtime specifico.
LIBRARY_BITS
Specifica il contenuto del pacchetto come valore letterale esadecimale, analogamente agli assembly.
Questa opzione è utile se si dispone dell'autorizzazione necessaria per modificare una libreria, ma l'accesso ai file nel server è limitato e non è possibile salvare il contenuto in un percorso a cui il server può accedere.
In alternativa, è possibile passare il contenuto dei pacchetti come variabile in un formato binario.
PLATFORM = WINDOWS
Specifica la piattaforma per il contenuto della libreria. Si tratta di un valore obbligatorio quando si modifica una libreria esistente per poter aggiungere una piattaforma diversa. In SQL Server 2017 (14.x), Windows è l'unica piattaforma supportata.
PIATTAFORMA
Specifica la piattaforma per il contenuto della libreria. Si tratta di un valore obbligatorio quando si modifica una libreria esistente per poter aggiungere una piattaforma diversa. In SQL Server 2019 (15.x), Windows e Linux sono le piattaforme supportate.
LANGUAGE = 'R'
Specifica il linguaggio del pacchetto. R è supportato in SQL Server 2017 (14.x).
LINGUA
Specifica il linguaggio del pacchetto. Il valore può essere R o Python in Istanza gestita di SQL di Azure.
LINGUA
Specifica il linguaggio del pacchetto. Il valore può essere R, Python o il nome di un linguaggio esterno (vedere CREATE EXTERNAL LANGUAGE).
Osservazioni:
Per il linguaggio R, i pacchetti devono essere preparati sotto forma di file di archivio compressi con l'estensione .zip per Windows. In SQL Server 2017 (14.x) è supportata solo la piattaforma Windows.
Per il linguaggio R, quando si usa un file, i pacchetti devono essere preparati sotto forma di file di archivio compressi con l'estensione .zip .
Per il linguaggio Python, il pacchetto in un .whl file o .zip deve essere preparato sotto forma di file di archivio compresso. Se il pacchetto è già un .zip file, deve essere incluso in un nuovo .zip file. Il caricamento diretto di un pacchetto come .whl o .zip di un file non è attualmente supportato.
L'istruzione ALTER EXTERNAL LIBRARY carica solo i bit della libreria nel database. La libreria modificata viene installata quando un utente esegue codice in sp_execute_external_script che chiama la libreria.
Diversi pacchetti, detti pacchetti di sistema, vengono preinstallati in un'istanza di SQL. Non è possibile aggiungere, aggiornare o rimuovere pacchetti di sistema.
Autorizzazioni
Per impostazione predefinita, l'utente dbo o qualsiasi membro del ruolo db_owner dispone dell'autorizzazione per eseguire ALTER EXTERNAL LIBRARY. Inoltre, una libreria esterna può essere modificata dall'utente che ha creato la libreria.
Esempi
L'esempio seguente modifica una libreria esterna denominata customPackage.
Sostituire il contenuto di una libreria usando un file
Nell'esempio seguente viene modificata una libreria esterna denominata customPackage, usando un file compresso che contiene i bit aggiornati.
ALTER EXTERNAL LIBRARY customPackage
SET (CONTENT = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\customPackage.zip')
WITH (LANGUAGE = 'R');
Per installare la libreria aggiornata, eseguire la stored procedure sp_execute_external_script.
EXECUTE sp_execute_external_script
@language = N'R',
@script = N'library(customPackage)';
Per il linguaggio Python, l'esempio funziona anche sostituendo 'R' con 'Python'.
Modificare una libreria esistente usando un flusso di byte
L'esempio seguente modifica la libreria esistente passando i nuovi bit come valore letterale esadecimale.
ALTER EXTERNAL LIBRARY customLibrary
SET (CONTENT = 0xABC123...) WITH (LANGUAGE = 'R');
Per il linguaggio Python, l'esempio funziona anche sostituendo 'R' con 'Python'.
Nota
Questo esempio di codice illustra solo la sintassi; Il valore binario in CONTENT = viene troncato per la leggibilità e non crea una libreria di lavoro. Il contenuto effettivo della variabile binaria è più lungo.