UBAH BAHASA EKSTERNAL (Transact-SQL)

Berlaku untuk: SQL Server 2019 (15.x)

Memodifikasi konten dalam ekstensi bahasa eksternal yang sudah ada dalam database.

Sintaks

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'

Argumen

language_name

Bahasa adalah objek cakupan database. Nama bahasa harus unik dalam database.

owner_name

Menentukan nama pengguna atau peran yang memiliki bahasa eksternal. Jika tidak ditentukan, kepemilikan diberikan kepada pengguna saat ini. Bergantung pada izin, pengguna lain mungkin perlu diberikan izin eksplisit untuk menjalankan skrip menggunakan bahasa tertentu.

file_spec

Menentukan konten ekstensi bahasa. Hanya satu filespec yang diizinkan untuk bahasa tertentu, per platform.

external_lang_specifier

Jalur file lengkap ke file .zip atau tar.gz yang berisi kode ekstensi. Konten ini dapat berupa jalur ke file .zip (di Windows) atau tar.gz (di Linux).

content_bits

Menentukan konten bahasa sebagai hex literal, mirip dengan rakitan. Opsi ini berguna jika Anda perlu membuat bahasa atau mengubah bahasa yang ada (dan memiliki izin yang diperlukan untuk melakukannya), tetapi sistem file di server dibatasi dan Anda tidak dapat menyalin file pustaka ke lokasi yang dapat diakses server.

external_lang_file_name

Nama ekstensi .dll atau file .so. Ini diperlukan untuk mengidentifikasi file yang benar, dalam kasus di mana ada beberapa file .dll atau .so di <external_lang_specifier> .zip atau tar.gz.

external_lang_parameters

Ini memberikan kemungkinan untuk memberikan serangkaian parameter ke runtime bahasa eksternal. Nilai parameter disediakan untuk runtime eksternal setelah proses eksternal dimulai. Namun, variabel lingkungan dapat diakses oleh ekstensi bahasa sebelum startup proses eksternal.

external_lang_env_variables

Ini memberikan kemungkinan untuk memberikan serangkaian variabel lingkungan ke runtime bahasa eksternal sebelum startup proses eksternal. Contoh variabel lingkungan adalah misalnya direktori beranda runtime itu sendiri. Misalnya: JRE_HOME.

platform

Parameter ini diperlukan untuk skenario OS hibrid. Dalam arsitektur hibrid, bahasa perlu didaftarkan sekali per platform. Platform dan nama bahasa akan menjadi kunci unik per bahasa eksternal. Jika tidak ada platform yang ditentukan, OS saat ini diasumsikan.

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Keterangan

Saat ini, PARAMETER dan ENVIRONMENT_VARIABLES tidak didukung.

Izin

Memerlukan ALTER ANY EXTERNAL LANGUAGE izin. Secara default, setiap pengguna yang memiliki dbo yang merupakan anggota peran db_owner memiliki izin untuk mengubah bahasa eksternal. Untuk semua pengguna lain, Anda harus secara eksplisit memberi mereka izin menggunakan pernyataan GRANT , menentukan UBAH BAHASA EKSTERNAL APA PUN sebagai hak istimewa.

Contoh

Mengubah bahasa eksternal dalam database

Contoh berikut menambahkan bahasa eksternal yang disebut Java ke database di SQL Server di Windows.

ALTER EXTERNAL LANGUAGE Java 
SET (CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll');
GO

Baca juga

BUAT BAHASA EKSTERNAL (T-SQL)
DROP EXTERNAL LANGUAGE (Transact-SQL)
sys.external_languages
sys.external_language_files