Partager via


sp_releaseapplock (Transact-SQL)

Libère un verrou appliqué à une ressource d'application.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

sp_releaseapplock [ @Resource = ] 'resource_name' 
     [ , [ @LockOwner = ] 'lock_owner' ]
     [ , [ @DbPrincipal = ] 'database_principal' ]
[ ; ]

Arguments

  • [ @Resource= ] 'resource_name'
    Nom de ressource de verrou spécifié par l'application cliente. L'application doit veiller à ce que la ressource soit unique. Le nom spécifié est haché en interne en une valeur qui peut être stockée dans le gestionnaire de verrous SQL Server. resource_name est de type nvarchar(255) et n'a pas de valeur par défaut. L'argument resource_name est évalué en binaire et respecte donc la casse, quels que soient les paramètres de classement de la base de données active.

  • [ @LockOwner= ] 'lock_owner'
    Propriétaire du verrou, qui est la valeur de lock_owner lorsque le verrou a été demandé. lock_owner est de type nvarchar(32). La valeur peut être Transaction (valeur par défaut) ou Session. Lorsque la valeur, par défaut ou explicitement spécifiée, de lock_owner est Transaction, sp_getapplock doit être exécuté à partir d'une transaction.

  • [ @DbPrincipal= ] 'database_principal'
    Utilisateur, rôle ou rôle d'application qui dispose d'autorisations sur un objet d'une base de données. 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. La valeur par défaut est public.

Valeurs des codes renvoyés

>= 0 (succès) 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

Quand une application appelle plusieurs fois sp_getapplock pour la même ressource de verrou, sp_releaseapplock doit être appelé 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 AdventureWorks2012.

USE AdventureWorks2012;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1', 
     @LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';
GO

Voir aussi

Référence

APPLOCK_MODE (Transact-SQL)

APPLOCK_TEST (Transact-SQL)

sp_getapplock (Transact-SQL)