Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2017 (14.x) dan versi yang
lebih baru Azure SQL Managed Instance
Memodifikasi konten pustaka paket eksternal yang ada.
Catatan
Di SQL Server 2017 (14.x), bahasa R dan platform Windows didukung. R, Python, dan bahasa eksternal pada platform Windows dan Linux didukung di SQL Server 2019 (15.x) dan versi yang lebih baru.
Sintaks untuk 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>
}
Sintaks untuk 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
}
Sintaks untuk 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'
}
Argumen
LIBRARY_NAME
Menentukan nama pustaka paket yang ada. Pustaka dilingkupkan ke pengguna. Nama pustaka harus unik dalam konteks pengguna atau pemilik tertentu.
Nama pustaka tidak dapat ditetapkan secara segan-segan. Artinya, Anda harus menggunakan nama yang diharapkan runtime panggilan saat memuat paket.
OWNER_NAME
Menentukan nama pengguna atau peran yang memiliki pustaka eksternal.
FILE_SPEC
Menentukan konten paket untuk platform tertentu. Hanya satu artefak file per platform yang didukung.
File dapat ditentukan dalam bentuk jalur lokal atau jalur jaringan. Jika opsi sumber data ditentukan, nama file dapat menjadi jalur relatif sehubungan dengan kontainer yang dirujuk dalam EXTERNAL DATA SOURCE.
Secara opsional, platform OS untuk file dapat ditentukan. Hanya satu artefak atau konten file yang diizinkan untuk setiap platform OS untuk bahasa atau runtime tertentu.
LIBRARY_BITS
Menentukan konten paket sebagai hex literal, mirip dengan rakitan.
Opsi ini berguna jika Anda memiliki izin yang diperlukan untuk mengubah pustaka, tetapi akses file di server dibatasi dan Anda tidak dapat menyimpan konten ke jalur yang dapat diakses server.
Sebagai gantinya, Anda dapat meneruskan konten paket sebagai variabel dalam format biner.
PLATFORM = WINDOWS
Menentukan platform untuk konten pustaka. Nilai ini diperlukan saat memodifikasi pustaka yang ada untuk menambahkan platform yang berbeda. Di SQL Server 2017 (14.x), Windows adalah satu-satunya platform yang didukung.
PLATFORM
Menentukan platform untuk konten pustaka. Nilai ini diperlukan saat memodifikasi pustaka yang ada untuk menambahkan platform yang berbeda. Di SQL Server 2019 (15.x), Windows dan Linux adalah platform yang didukung.
BAHASA = 'R'
Menentukan bahasa paket. R didukung di SQL Server 2017 (14.x).
LANGUAGE
Menentukan bahasa paket. Nilainya bisa R atau Python di Azure SQL Managed Instance.
LANGUAGE
Menentukan bahasa paket. Nilainya bisa , RPython, atau nama bahasa eksternal (lihat BUAT BAHASA EKSTERNAL).
Keterangan
Untuk bahasa R, paket harus disiapkan dalam bentuk file arsip zip dengan .zip ekstensi untuk Windows. Di SQL Server 2017 (14.x), hanya platform Windows yang didukung.
Untuk bahasa R, saat menggunakan file, paket harus disiapkan dalam bentuk file arsip zip dengan .zip ekstensi.
Untuk bahasa Python, paket dalam .whl file atau .zip harus disiapkan dalam bentuk file arsip zip. Jika paket sudah merupakan .zip file, paket harus disertakan dalam file baru .zip . Mengunggah paket sebagai .whl atau .zip file secara langsung saat ini tidak didukung.
Pernyataan ALTER EXTERNAL LIBRARY hanya mengunggah bit pustaka ke database. Pustaka yang dimodifikasi diinstal saat pengguna menjalankan kode di sp_execute_external_script yang memanggil pustaka.
Beberapa paket, disebut sebagai paket sistem, telah diinstal sebelumnya dalam instans SQL. Anda tidak dapat menambahkan, memperbarui, atau menghapus paket sistem.
Izin
Secara default, pengguna dbo atau anggota peran apa pun db_owner memiliki izin untuk menjalankan ALTER EXTERNAL LIBRARY. Selain itu, pengguna yang membuat pustaka eksternal dapat mengubah pustaka eksternal tersebut.
Contoh
Contoh berikut mengubah pustaka eksternal yang disebut customPackage.
Mengganti konten pustaka menggunakan file
Contoh berikut memodifikasi pustaka eksternal yang disebut customPackage, menggunakan file zip yang berisi bit yang diperbarui.
ALTER EXTERNAL LIBRARY customPackage
SET (CONTENT = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\customPackage.zip')
WITH (LANGUAGE = 'R');
Untuk menginstal pustaka yang diperbarui, jalankan prosedur sp_execute_external_scripttersimpan .
EXECUTE sp_execute_external_script
@language = N'R',
@script = N'library(customPackage)';
Untuk bahasa Python, contohnya juga berfungsi dengan mengganti 'R' dengan 'Python'.
Mengubah pustaka yang sudah ada menggunakan aliran byte
Contoh berikut mengubah pustaka yang ada dengan meneruskan bit baru sebagai literal heksadesimal.
ALTER EXTERNAL LIBRARY customLibrary
SET (CONTENT = 0xABC123...) WITH (LANGUAGE = 'R');
Untuk bahasa Python, contohnya juga berfungsi dengan mengganti 'R' dengan 'Python'.
Catatan
Sampel kode ini hanya menunjukkan sintaks; nilai biner di terpotong CONTENT = untuk keterbacaan dan tidak membuat pustaka yang berfungsi. Konten aktual dari variabel biner lebih panjang.