共用方式為


ALTER EXTERNAL LANGUAGE (Transact-SQL)

適用於:SQL Server 2019 (15.x)

修改資料庫現有外部語言延伸模組中的內容。

語法

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'

引數

language_name

語言是資料庫範圍的物件。 語言名稱在資料庫內必須是唯一的。

owner_name

指定擁有外部語言的使用者或角色名稱。 若未指定,擁有權便歸目前使用者。 視權限而定,其他使用者可能需要獲得明確的權限,才能使用特定語言來執行指令碼。

file_spec

指定語言擴充功能的內容。每個平台的特定語言只允許一種檔案規格。

external_lang_specifier

.zip 或 .tar.gz 檔案的完整檔案路徑包含延伸模組程式碼。 此內容可以是 .zip 檔案 (Windows) 或 .tar.gz (Linux) 的路徑。

content_bits

以十六進位常值形式指定語言的內容,類似於組件。 如果您必須建立語言或更改現有的語言 (且具備執行此操作所需的權限),但伺服器上的檔案系統受到限制,而您無法將程式庫檔案複製到伺服器能夠存取的位置,則此選項會相當有用。

external_lang_file_name

.dll 或 .so 檔案副檔名名稱。 當 <external_lang_specifier> .zip 或 tar.gz 有數個 .dll 或 .so 檔案時,那麼一定要有此項目才能識別正確的檔案。

external_lang_parameters

這有可能向外部語言執行階段提供一組參數。 外部處理序啟動之後,參數值會提供給外部執行階段。 但在外部處理序啟動之前,語言延伸模組可以存取環境變數。

.external_lang_env_variables

這可能會在外部處理序啟動之前,向外部語言執行階段提供一組環境變數。 例如,執行階段本身的主目錄即為環境變數範例。 例如:JRE_HOME。

平台

混合式作業系統案例需要此參數。 在混合式架構中,語言需要在每個平台註冊一次。 平台和語言名稱會是每種外部語言的唯一索引鍵。 如未指定任何平台,則假設為目前的作業系統。

備註

目前,不支援 PARAMETERSENVIRONMENT_VARIABLES

權限

需要 ALTER ANY EXTERNAL LANGUAGE 權限。 根據預設,任何具有 dbo 或為 db_owner 角色成員的使用者,都有更改外部語言的權限。 金對其他所有使用者,您必須使用 GRANT 陳述式指定 ALTER ANY EXTERNAL LANGUAGE 為權限,明確授與其權限。

範例

更改資料庫中的外部語言

下例會將外部語言呼叫的 Java 新增至 Windows 之 SQL Server 的資料庫。

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

另請參閱

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