Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwalnia blokadę na zasobach aplikacji.
Transact-SQL konwencje składni
Składnia
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Arguments
[ @Resource = ] N'Resource'
Nazwa zasobu blokady określona przez aplikację kliencką.
@Resource to nvarchar(255), z domyślnym obciążeniem NULL.
@Resource jest porównywana binarnie, więc jest wrażliwa na wielka literę niezależnie od ustawień kolizacji w aktualnej bazie danych.
Aplikacja musi zapewnić, że zasób jest unikalny. Określona nazwa jest wewnętrznie haszowana do wartości, którą można przechowywać w menedżerze blokad SQL Server.
[ @LockOwner = ] 'Właściciel zamka'
Właściciel zamka, czyli wartość @LockOwner w momencie zamówienia zamka.
@LockOwner to varchar(32), z domyślnym .Transaction Wartość ta może również wynosić .Session Gdy wartość @LockOwner jest Transakcja, domyślnie lub wyraźnie określona, musi sp_getapplock być wykonana z wewnątrz transakcji.
[ @DbPrincipal = ] N'DbPrincipal'
Rola użytkownika, roli lub aplikacji, która ma uprawnienia do obiektu w bazie danych.
@DbPrincipal to nazwa systemu, z domyślnym .public Wywołujący funkcję musi być członkiem database_principal, DBO lub stałej roli bazy danych db_owner , aby funkcja mogła być pomyślnie wywołana.
Zwracanie wartości kodu
>= 0 (sukces), lub < 0 (niepowodzenie).
| Wartość | Wynik |
|---|---|
0 |
Lock został pomyślnie zwolniony. |
-999 |
Wskazuje walidację parametrów lub inny błąd wywołania. |
Uwagi
Gdy aplikacja wywołuje sp_getapplock wielokrotnie ten sam zasób blokady, musi być wywołana tyle samo razy, sp_releaseapplock aby zwolnić blokadę.
Gdy serwer wyłącza się z jakiegokolwiek powodu, blokady zostają zwolnione.
Permissions
Wymaga członkostwa w publicznej roli .
Przykłady
Poniższy przykład zwalnia blokadę powiązaną z bieżącą transakcją na zasobu Form1 w AdventureWorks2025 bazie danych.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO