sp_releaseapplock (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Libère un verrou appliqué à une ressource d'application.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Arguments
[ @Resource = ] N'Ressource'
Nom de ressource de verrouillage spécifié par l'application cliente. @Resource est nvarchar(255), avec la valeur par défaut NULL
. @Resource est binaire comparé, il respecte donc la casse indépendamment des paramètres de classement de la base de données active.
L'application doit veiller à ce que la ressource soit unique. Le nom spécifié est haché en interne dans une valeur qui peut être stockée dans le gestionnaire de verrous SQL Server.
[ @LockOwner = ] 'LockOwner'
Propriétaire du verrou, qui est la valeur @LockOwner lorsque le verrou a été demandé. @LockOwner est varchar(32), avec la valeur par défaut Transaction
. La valeur peut également être Session
. Lorsque la valeur @LockOwner est Transaction, par défaut ou spécifiée explicitement, sp_getapplock
doit être exécutée à partir d’une transaction.
[ @DbPrincipal = ] N'DbPrincipal'
Rôle d’utilisateur, de rôle ou d’application disposant d’autorisations pour un objet dans une base de données. @DbPrincipal est sysname, avec la valeur par défaut public
. L’appelant de la fonction doit être membre du rôle de base de données fixe database_principal, dbo ou db_owner pour pouvoir appeler la fonction.
Valeurs des codes de retour
>= 0
(réussite) ou < 0
(échec).
Valeur | Résultat |
---|---|
0 |
Le verrou a été libéré avec succès. |
-999 |
Indique la validation de paramètre ou une autre erreur d'appel. |
Notes
Lorsqu’une application appelle sp_getapplock
plusieurs fois pour la même ressource de verrou, sp_releaseapplock
elle doit être appelée le même nombre de fois pour libérer le verrou.
Lorsque le serveur s'interrompt pour une raison quelconque, les verrous sont libérés.
autorisations
Nécessite l'appartenance au rôle public .
Exemples
L'exemple suivant libère le verrou associé à la transaction active sur la ressource Form1
de la base de données AdventureWorks2022
.
USE AdventureWorks2022;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo',
@Resource = 'Form1';
GO