Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2017 (14.x) a novější verze
Azure SQL Managed Instance
Upraví obsah existující externí knihovny balíčků.
Poznámka:
V SQL Serveru 2017 se podporuje jazyk R a platforma Windows. Jazyk R, Python a externí jazyky na platformách Windows a Linux jsou podporovány v SQL Serveru 2019 a novějším.
Poznámka:
Ve službě Azure SQL Managed Instance můžete knihovnu změnit tak, že ji odeberete a pak pomocí nástrojů sqlmlutils nainstalujete upravenou verzi. Další informace o nástrojích sqlmlutils najdete v tématu Instalace balíčků Pythonu pomocí nástrojů sqlmlutils a Instalace nových balíčků R pomocí sqlmlutils.
Syntaxe pro 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>
}
Syntaxe pro 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
}
Syntaxe pro spravovanou instanci Azure SQL
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'
}
Arguments
library_name
Určuje název existující knihovny balíčků. Knihovny jsou omezené na uživatele. Názvy knihoven musí být jedinečné v kontextu konkrétního uživatele nebo vlastníka.
Název knihovny nelze libovolně přiřadit. To znamená, že musíte použít název, který volající modul runtime očekává při načtení balíčku.
owner_name
Určuje název uživatele nebo role, která vlastní externí knihovnu.
file_spec
Určuje obsah balíčku pro konkrétní platformu. Podporuje se pouze jeden artefakt souboru na platformu.
Soubor lze zadat ve formě místní cesty nebo síťové cesty. Pokud je zadána možnost zdroje dat, název souboru může být relativní cesta s ohledem na kontejner odkazovaný v objektu EXTERNAL DATA SOURCE.
Volitelně je možné zadat platformu operačního systému pro soubor. Pro každou platformu operačního systému pro konkrétní jazyk nebo modul runtime je povolen pouze jeden artefakt souboru nebo obsah.
library_bits
Určuje obsah balíčku jako šestnáctkový literál, podobně jako sestavení.
Tato možnost je užitečná, pokud máte požadovaná oprávnění ke změně knihovny, ale přístup k souborům na serveru je omezený a nemůžete obsah uložit do cesty, ke které má server přístup.
Místo toho můžete obsah balíčku předat jako proměnnou v binárním formátu.
platform = WINDOWS
Určuje platformu pro obsah knihovny. Tato hodnota se vyžaduje při úpravě existující knihovny pro přidání jiné platformy. V SQL Serveru 2017 je windows jedinou podporovanou platformou.
nástupiště
Určuje platformu pro obsah knihovny. Tato hodnota se vyžaduje při úpravě existující knihovny pro přidání jiné platformy. V SQL Serveru 2019 jsou podporované platformy Windows a Linux.
LANGUAGE = 'R'
Určuje jazyk balíčku. Jazyk R je podporován v SQL Serveru 2017.
Jazyk
Určuje jazyk balíčku. Hodnota může být R nebo Python ve službě Azure SQL Managed Instance.
Jazyk
Určuje jazyk balíčku. Hodnota může být R, Python nebo název externího jazyka (viz CREATE EXTERNAL LANGUAGE).
Poznámky
Pro jazyk R musí být balíčky připravené ve formě komprimovaných archivních souborů s příponou .ZIP pro Windows. V SQL Serveru 2017 se podporuje jenom platforma Windows.
V případě jazyka R musí být balíčky při použití souboru připravené ve formě komprimovaných archivních souborů s příponou .ZIP.
Pro jazyk Python musí být balíček v souboru .whl nebo .zip připravený ve formě komprimovaného archivního souboru. Pokud už balíček je soubor .zip, musí být součástí nového souboru .zip. Nahrání balíčku jako souboru .whl nebo .zip přímo není podporováno.
Příkaz ALTER EXTERNAL LIBRARY nahraje do databáze jenom bity knihovny. Upravená knihovna se nainstaluje, když uživatel spustí kód v sp_execute_external_script (Transact-SQL), který knihovnu volá.
Řada balíčků, které se označují jako systémové balíčky, jsou předinstalované v instanci SQL. Systémové balíčky nelze přidat, aktualizovat ani odebrat uživatelem.
Povolení
Ve výchozím nastavení má uživatel dbo nebo jakýkoli člen role db_owner oprávnění ke spuštění ALTER EXTERNAL LIBRARY. Kromě toho uživatel, který vytvořil externí knihovnu, může tuto externí knihovnu změnit.
Examples
Následující příklady mění externí knihovnu s názvem customPackage.
Nahrazení obsahu knihovny pomocí souboru
Následující příklad upraví externí knihovnu s názvem customPackage, pomocí zip souboru obsahujícího aktualizované bity.
ALTER EXTERNAL LIBRARY customPackage
SET
(CONTENT = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\customPackage.zip')
WITH (LANGUAGE = 'R');
Chcete-li nainstalovat aktualizovanou knihovnu, spusťte uloženou proceduru sp_execute_external_script.
EXEC sp_execute_external_script
@language =N'R',
@script=N'library(customPackage)'
;
V případě jazyka Python funguje příklad také nahrazením 'R' .'Python'
Změna existující knihovny pomocí bajtového streamu
Následující příklad změní existující knihovnu předáním nových bitů jako šestnáctkového literálu.
ALTER EXTERNAL LIBRARY customLibrary
SET (CONTENT = 0xABC123...) WITH (LANGUAGE = 'R');
V případě jazyka Python funguje příklad také nahrazením 'R' .'Python'
Poznámka:
Tento vzorový kód demonstruje pouze syntaxi; binární hodnota byla CONTENT = zkrácena pro čitelnost a nevytvoří pracovní knihovnu. Skutečný obsah binární proměnné by byl mnohem delší.
Viz také
CREATE EXTERNAL LIBRARY (Transact-SQL)
DROP EXTERNAL LIBRARY (Transact-SQL)
sys.external_library_files
sys.external_libraries