Megosztás a következőn keresztül:


sp_releaseapplock (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Lezárást enged egy alkalmazásforrásra.

Transact-SQL szintaxis konvenciók

Szemantika

sp_releaseapplock
    [ [ @Resource = ] N'Resource' ]
    [ , [ @LockOwner = ] 'LockOwner' ]
    [ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]

Arguments

[ @Resource = ] N'Resource'

Egy kliensalkalmazás által meghatározott zároló erőforrás neve. @Resourcenvarchar(255), alapértelmezett értéke NULL. @Resource bináris összehasonlítású, így kis- és kisméretre érzékeny, függetlenül a jelenlegi adatbázis összeállítási beállításaitól.

Az alkalmazásnak biztosítania kell, hogy az erőforrás egyedi legyen. A megadott név belső hashelésbe kerül egy értékbe, amely az SQL Server zárkezelőjében tárolható.

[ @LockOwner = ] 'LockOwner'

A zsilit tulajdonosa, ami a @LockOwner érték, amikor a zárat kérték. @LockOwnera varchar(32), alapértelmezett értéke Transaction. Az érték is lehet Session. Ha a @LockOwner érték Transaction, akkor alapértelmezettnek vagy kifejezetten meghatározott módon végrehajtani sp_getapplock kell egy tranzakción belül.

[ @DbPrincipal = ] N'DbPrincipal'

Az a felhasználó, szerep vagy alkalmazásszerep, amely jogosultságokkal rendelkezik egy objektumra az adatbázisban. @DbPrincipal a sysname, alapértelmezettként public. A függvény hívójának tagja kell lennie a database_principal, dbo vagy a db_owner fix adatbázis szerepének tagjának ahhoz, hogy a függvényt sikeresen hívhassa.

Kódértékek visszaadása

>= 0 (siker), vagy < 0 (kudarc).

Érték Result
0 Lock sikeresen szabadon engedték.
-999 Paraméter ellenőrzést vagy más hívási hibát jelez.

Megjegyzések

Ha egy alkalmazás többször is hív sp_getapplock ugyanazt a zár erőforrást, sp_releaseapplock ugyanannyiszor kell meghívnia a zár feloldásához.

Ha a szerver bármilyen okból leáll, a zárak feloldódnak.

Permissions

A nyilvános szerepkör tagságát igényli.

Példák

A következő példa feloldja az adatbázisban lévő erőforrás aktuális tranzakciójához Form1AdventureWorks2025 tartozó zárat.

USE AdventureWorks2022;
GO

EXECUTE sp_getapplock
    @DbPrincipal = 'dbo',
    @Resource = 'Form1',
    @LockMode = 'Shared';

EXECUTE sp_releaseapplock
    @DbPrincipal = 'dbo',
    @Resource = 'Form1';
GO