Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2017 (14.x) i nowsze wersje
usługi Azure SQL Managed Instance
Modyfikuje zawartość istniejącej zewnętrznej biblioteki pakietów.
Uwaga / Notatka
W programie SQL Server 2017 obsługiwane są języki R i platforma Windows. Języki R, Python i zewnętrzne na platformach Windows i Linux są obsługiwane w programie SQL Server 2019 i nowszych wersjach.
Uwaga / Notatka
W usłudze Azure SQL Managed Instance możesz zmienić bibliotekę, usuwając ją, a następnie używając narzędzia sqlmlutils do zainstalowania zmienionej wersji. Aby uzyskać więcej informacji na temat narzędzi sqlmlutils, zobacz Instalowanie pakietów języka Python przy użyciu narzędzi sqlmlutils i Instalowanie nowych pakietów języka R za pomocą narzędzia sqlmlutils.
Składnia dla programu 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>
}
Składnia programu 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
}
Składnia dla usługi Azure SQL Managed Instance
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
Określa nazwę istniejącej biblioteki pakietów. Biblioteki są ograniczone do użytkownika. Nazwy bibliotek muszą być unikatowe w kontekście określonego użytkownika lub właściciela.
Nazwa biblioteki nie może być dowolnie przypisana. Oznacza to, że należy użyć nazwy oczekiwanej przez środowisko uruchomieniowe wywołujące podczas ładowania pakietu.
owner_name
Określa nazwę użytkownika lub roli, która jest właścicielem biblioteki zewnętrznej.
file_spec
Określa zawartość pakietu dla określonej platformy. Obsługiwany jest tylko jeden artefakt pliku na platformę.
Plik można określić w postaci ścieżki lokalnej lub ścieżki sieciowej. Jeśli zostanie określona opcja źródła danych, nazwa pliku może być ścieżką względną w odniesieniu do kontenera, do których odwołuje się EXTERNAL DATA SOURCEelement .
Opcjonalnie można określić platformę systemu operacyjnego dla pliku. Tylko jeden artefakt lub zawartość pliku jest dozwolony dla każdej platformy systemu operacyjnego dla określonego języka lub środowiska uruchomieniowego.
library_bits
Określa zawartość pakietu jako literał szesnastkowy, podobny do zestawów.
Ta opcja jest przydatna, jeśli masz wymagane uprawnienia do zmiany biblioteki, ale dostęp do plików na serwerze jest ograniczony i nie można zapisać zawartości w ścieżce, do której serwer może uzyskać dostęp.
Zamiast tego możesz przekazać zawartość pakietu jako zmienną w formacie binarnym.
platformy = WINDOWS
Określa platformę zawartości biblioteki. Ta wartość jest wymagana podczas modyfikowania istniejącej biblioteki w celu dodania innej platformy. W programie SQL Server 2017 system Windows jest jedyną obsługiwaną platformą.
podest
Określa platformę zawartości biblioteki. Ta wartość jest wymagana podczas modyfikowania istniejącej biblioteki w celu dodania innej platformy. W programie SQL Server 2019 obsługiwane są systemy Windows i Linux.
LANGUAGE = 'R'
Określa język pakietu. Język R jest obsługiwany w programie SQL Server 2017.
Język
Określa język pakietu. Wartość może być R lub Python w usłudze Azure SQL Managed Instance.
Język
Określa język pakietu. Wartość może być R, Python lub nazwa języka zewnętrznego (zobacz CREATE EXTERNAL LANGUAGE).
Uwagi
W przypadku języka R pakiety muszą być przygotowane w postaci spakowanego pliku archiwum z rozszerzeniem .ZIP dla systemu Windows. W programie SQL Server 2017 obsługiwana jest tylko platforma Windows.
W przypadku języka R podczas korzystania z pliku pakiety muszą być przygotowane w postaci spakowanego pliku archiwum z rozszerzeniem .ZIP.
W przypadku języka Python pakiet w pliku .whl lub .zip musi być przygotowany w postaci spakowanego pliku archiwum. Jeśli pakiet jest już plikiem .zip, musi zostać uwzględniony w nowym pliku .zip. Przekazywanie pakietu jako pliku whl lub .zip bezpośrednio nie jest obsługiwane.
Instrukcja ALTER EXTERNAL LIBRARY przekazuje tylko bity biblioteki do bazy danych. Zmodyfikowana biblioteka jest instalowana, gdy użytkownik uruchamia kod w sp_execute_external_script (Transact-SQL), który wywołuje bibliotekę.
Wiele pakietów, nazywanych pakietami systemowym, jest wstępnie zainstalowanych w wystąpieniu SQL. Nie można dodawać, aktualizować ani usuwać pakietów systemowych przez użytkownika.
Permissions
Domyślnie użytkownik dbo lub dowolny członek roli db_owner ma uprawnienia do uruchamiania ALTER EXTERNAL LIBRARY. Ponadto użytkownik, który utworzył bibliotekę zewnętrzną, może zmienić bibliotekę zewnętrzną.
Przykłady
W poniższych przykładach zmieniono bibliotekę zewnętrzną o nazwie customPackage.
Zastępowanie zawartości biblioteki przy użyciu pliku
Poniższy przykład modyfikuje bibliotekę zewnętrzną o nazwie customPackage, używając spakowanego pliku zawierającego zaktualizowane bity.
ALTER EXTERNAL LIBRARY customPackage
SET
(CONTENT = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\customPackage.zip')
WITH (LANGUAGE = 'R');
Aby zainstalować zaktualizowaną bibliotekę, wykonaj procedurę sp_execute_external_scriptskładowaną .
EXEC sp_execute_external_script
@language =N'R',
@script=N'library(customPackage)'
;
W przypadku języka Python przykład działa również przez zastąpienie ciągiem 'R''Python'.
Zmienianie istniejącej biblioteki przy użyciu strumienia bajtów
Poniższy przykład zmienia istniejącą bibliotekę, przekazując nowe bity jako literał szesnastkowy.
ALTER EXTERNAL LIBRARY customLibrary
SET (CONTENT = 0xABC123...) WITH (LANGUAGE = 'R');
W przypadku języka Python przykład działa również przez zastąpienie ciągiem 'R''Python'.
Uwaga / Notatka
Ten przykładowy kod demonstruje tylko składnię; wartość binarna w pliku CONTENT = została obcięta pod kątem czytelności i nie tworzy działającej biblioteki. Rzeczywista zawartość zmiennej binarnej byłaby znacznie dłuższa.
Zobacz także
CREATE EXTERNAL LIBRARY (Transact-SQL)
DROP EXTERNAL LIBRARY (Transact-SQL)
sys.external_library_files
sys.external_libraries