Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2017 (14.x) en latere versies
van Azure SQL Managed Instance
Hiermee wijzigt u de inhoud van een bestaande externe pakketbibliotheek.
Opmerking
In SQL Server 2017 (14.x) worden R-taal en Windows-platform ondersteund. R-, Python- en externe talen op de Windows- en Linux-platforms worden ondersteund in SQL Server 2019 (15.x) en latere versies.
Syntaxis voor 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>
}
Syntaxis voor 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
}
Syntaxis voor 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
Hiermee geeft u de naam van een bestaande pakketbibliotheek. Bibliotheken zijn gericht op de gebruiker. Bibliotheeknamen moeten uniek zijn binnen de context van een specifieke gebruiker of eigenaar.
De bibliotheeknaam kan niet willekeurig worden toegewezen. Dat wil gezegd: u moet de naam gebruiken die de aanroepende runtime verwacht wanneer het pakket wordt geladen.
OWNER_NAME
Hiermee geeft u de naam op van de gebruiker of rol die eigenaar is van de externe bibliotheek.
FILE_SPEC
Hiermee geeft u de inhoud van het pakket voor een specifiek platform. Er wordt slechts één bestandsartefact per platform ondersteund.
Het bestand kan worden opgegeven in de vorm van een lokaal pad of netwerkpad. Als de optie voor de gegevensbron is opgegeven, kan de bestandsnaam een relatief pad zijn met betrekking tot de container waarnaar wordt verwezen in de EXTERNAL DATA SOURCE.
U kunt eventueel een besturingssysteemplatform voor het bestand opgeven. Er is slechts één bestandsartefact of -inhoud toegestaan voor elk besturingssysteemplatform voor een specifieke taal of runtime.
LIBRARY_BITS
Hiermee geeft u de inhoud van het pakket op als een letterlijke hextekst, vergelijkbaar met assembly's.
Deze optie is handig als u over de vereiste machtiging beschikt om een bibliotheek te wijzigen, maar bestandstoegang op de server is beperkt en u de inhoud niet kunt opslaan op een pad dat de server kan openen.
In plaats daarvan kunt u de inhoud van het pakket doorgeven als een variabele in binaire indeling.
PLATFORM = WINDOWS
Hiermee geeft u het platform voor de inhoud van de bibliotheek. Deze waarde is vereist bij het wijzigen van een bestaande bibliotheek om een ander platform toe te voegen. In SQL Server 2017 (14.x) is Windows het enige ondersteunde platform.
PLATFORM
Hiermee geeft u het platform voor de inhoud van de bibliotheek. Deze waarde is vereist bij het wijzigen van een bestaande bibliotheek om een ander platform toe te voegen. In SQL Server 2019 (15.x) zijn Windows en Linux de ondersteunde platforms.
LANGUAGE = 'R'
Hiermee geeft u de taal van het pakket. R wordt ondersteund in SQL Server 2017 (14.x).
LANGUAGE
Hiermee geeft u de taal van het pakket. De waarde kan of R in Azure SQL Managed Instance zijnPython.
LANGUAGE
Hiermee geeft u de taal van het pakket. De waarde kan R, Pythonof de naam van een externe taal zijn (zie CREATE EXTERNAL LANGUAGE).
Opmerkingen
Voor de R-taal moeten pakketten worden voorbereid in de vorm van gezipte archiefbestanden met de .zip extensie voor Windows. In SQL Server 2017 (14.x) wordt alleen het Windows-platform ondersteund.
Voor de R-taal moeten pakketten worden voorbereid in de vorm van gezipte archiefbestanden met de .zip extensie wanneer u een bestand gebruikt.
Voor de Python-taal moet het pakket in een .whl of .zip bestand worden voorbereid in de vorm van een zip-archiefbestand. Als het pakket al een .zip bestand is, moet het worden opgenomen in een nieuw .zip bestand. Het rechtstreeks uploaden van een pakket als .whl bestand wordt .zip momenteel niet ondersteund.
De ALTER EXTERNAL LIBRARY instructie uploadt alleen de bibliotheek-bits naar de database. De gewijzigde bibliotheek wordt geïnstalleerd wanneer een gebruiker code uitvoert in sp_execute_external_script die de bibliotheek aanroept.
Verschillende pakketten, ook wel systeempakketten genoemd, worden vooraf geïnstalleerd in een SQL-exemplaar. U kunt geen systeempakketten toevoegen, bijwerken of verwijderen.
Permissions
De dbo-gebruiker of een lid van de rol db_owner is standaard gemachtigd om uit te voeren ALTER EXTERNAL LIBRARY. Bovendien kan de gebruiker die de externe bibliotheek heeft gemaakt, die externe bibliotheek wijzigen.
Voorbeelden
In de volgende voorbeelden wordt een externe bibliotheek gewijzigd met de naam customPackage.
De inhoud van een bibliotheek vervangen met behulp van een bestand
In het volgende voorbeeld wordt een externe bibliotheek gewijzigd met de naam customPackage, met behulp van een gezipt bestand met de bijgewerkte bits.
ALTER EXTERNAL LIBRARY customPackage
SET (CONTENT = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\customPackage.zip')
WITH (LANGUAGE = 'R');
Als u de bijgewerkte bibliotheek wilt installeren, voert u de opgeslagen procedure sp_execute_external_scriptuit.
EXECUTE sp_execute_external_script
@language = N'R',
@script = N'library(customPackage)';
Voor de Python-taal werkt het voorbeeld ook door te 'R' vervangen door 'Python'.
Een bestaande bibliotheek wijzigen met behulp van een bytestream
In het volgende voorbeeld wordt de bestaande bibliotheek gewijzigd door de nieuwe bits door te geven als een hexadecimale letterlijke waarde.
ALTER EXTERNAL LIBRARY customLibrary
SET (CONTENT = 0xABC123...) WITH (LANGUAGE = 'R');
Voor de Python-taal werkt het voorbeeld ook door te 'R' vervangen door 'Python'.
Opmerking
In dit codevoorbeeld wordt alleen de syntaxis gedemonstreert; de binaire waarde wordt CONTENT = afgekapt voor leesbaarheid en maakt geen werkende bibliotheek. De werkelijke inhoud van de binaire variabele is langer.