Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
Rilascia un blocco in una risorsa di applicazione.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Argomenti
[ @Resource = ] N'Risorsa'
Nome di una risorsa di blocco specificato nell'applicazione client.
@Resource è nvarchar(255), con un valore predefinito .NULL
@Resource viene confrontato in modo binario, pertanto viene fatta distinzione tra maiuscole e minuscole indipendentemente dalle impostazioni delle regole di confronto del database corrente.
L'applicazione deve garantire che la risorsa sia univoca. Il nome specificato viene sottoposto internamente all'hashing in un valore che può essere archiviato nella gestione blocchi di SQL Server.
[ @LockOwner = ] 'ProprietarioSerratura'
Proprietario del blocco, ovvero il valore @LockOwner quando è stato richiesto il blocco.
@LockOwner è varchar(32), con un valore predefinito .Transaction Il valore può anche essere Session. Quando il valore @LockOwner è Transaction, per impostazione predefinita o specificato in modo esplicito, sp_getapplock deve essere eseguito dall'interno di una transazione.
[ @DbPrincipal = ] N'DbPrincipal
Ruolo utente, ruolo o applicazione con autorizzazioni per un oggetto in un database.
@DbPrincipal è sysname, con un valore predefinito .public Affinché la chiamata della funzione abbia esito positivo, è necessario che il chiamante sia un membro del ruolo predefinito del database database_principal, dbo o db_owner.
Valori del codice restituito
>= 0 (esito positivo) o < 0 (errore).
| Valore | Risultato |
|---|---|
0 |
Il blocco è stato rilasciato correttamente. |
-999 |
Indica un errore di convalida dei parametri o un altro errore di chiamata. |
Osservazioni:
Quando un'applicazione chiama sp_getapplock più volte per la stessa risorsa di blocco, sp_releaseapplock deve essere chiamato lo stesso numero di volte per rilasciare il blocco.
I blocchi vengono inoltre rilasciati quando per qualsiasi motivo il server viene arrestato.
Autorizzazioni
È richiesta l'appartenenza al ruolo public .
Esempi
Nell'esempio seguente viene rilasciato il blocco associato alla transazione corrente nella risorsa Form1 del database AdventureWorks2025.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO