ALTER EXTERNAL LANGUAGE (Transact-SQL)

Dotyczy: SQL Server 2019 (15.x)

Modyfikuje zawartość w istniejącym zewnętrznym rozszerzeniu językowym w bazie danych.

Składnia

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'

Arguments

language_name

Języki są obiektami o skali bazy danych. Nazwy języków muszą być unikalne w bazie danych.

owner_name

Określa nazwę użytkownika lub rolę, która jest właścicielem języka zewnętrznego. Jeśli nie zostanie określony, własność zostanie nadana bieżącemu użytkownikowi. W zależności od uprawnień, inni użytkownicy mogą wymagać wyraźnego pozwolenia na wykonywanie skryptów w określonym języku.

file_spec

Określa zawartość rozszerzenia języka. Dla konkretnego języka na platformę dozwolona jest tylko jedna specyfikacja pliku.

external_lang_specifier

Pełna ścieżka pliku do pliku .zip lub tar.gz zawierającego kod rozszerzenia. Ta treść może być ścieżką do pliku .zip (na Windows) lub tar.gz (na Linuksie).

content_bits

Określa zawartość języka jako literal heksiędelny, podobnie jak assemblies. Ta opcja jest przydatna, jeśli musisz stworzyć język lub zmienić istniejący język (i masz do tego wymagane uprawnienia), ale system plików na serwerze jest ograniczony i nie możesz skopiować plików biblioteki do miejsca, do którego serwer ma dostęp.

external_lang_file_name

Nazwa rozszerzenia .dll pliku .so. Jest to wymagane do identyfikacji poprawnego pliku w przypadkach, gdy w external_lang_specifier> .zip lub tar.gz znajduje się kilka plików <.dll lub .so.

external_lang_parameters

Daje to możliwość nadania zestawu parametrów do zewnętrznego środowiska wykonawczego języka. Wartości parametrów są przekazywane zewnętrznemu środowisku wykonawczym po rozpoczęciu procesu zewnętrznego. Zmienne środowiskowe są jednak dostępne dla rozszerzenia języka przed uruchomieniem zewnętrznego procesu.

external_lang_env_variables

Daje to możliwość nadania zestawu zmiennych środowiskowych środowisku środowiskowemu środowisku środowiska przed uruchomieniem procesu zewnętrznego. Przykładem zmiennej środowiskowej jest na przykład katalog domowy samego środowiska wykonawczego. Na przykład: JRE_HOME.

podest

Ten parametr jest potrzebny w scenariuszach hybrydowych systemów operacyjnych. W architekturze hybrydowej język musi być zarejestrowany raz na platformę. Nazwa platformy i języka będzie unikalnym kluczem dla każdego języka zewnętrznego. Jeśli nie podano platformy, przyjmuje się aktualny system operacyjny.

Remarks

Obecnie PARAMETERS iENVIRONMENT_VARIABLES nie są obsługiwane.

Permissions

Wymaga uprawnienia ALTER ANY EXTERNAL LANGUAGE. Domyślnie każdy użytkownik, który ma dbo i jest członkiem roli db_owner , ma uprawnienia do zmiany języka zewnętrznego. Dla wszystkich pozostałych użytkowników musisz wyraźnie udzielić zgody za pomocą GRANT instrukcji, określając ALTER ANY EXTERNAL LANGUAGE jako uprawnienie.

Examples

Zmodyfikuj język zewnętrzny w bazie danych

Poniższy przykład dodaje język zewnętrzny o nazwie Java do bazy danych w programie SQL Server w systemie Windows.

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

Zobacz także

CREATE EXTERNAL LANGUAGE (Transact-SQL)
DROP EXTERNAL LANGUAGE (Transact-SQL)
sys.external_languages
sys.external_language_files