sp_releaseapplock (Transact-SQL)

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

Icône Lien de rubriqueConventions de la syntaxe de 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 client. 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), sans 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, ce qui correspond à la valeur de lock_owner au moment où 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ée à partir d'une transaction.

  • [ @DbPrincipal = ] 'database_principal'
    Utilisateur, rôle ou rôle d'application qui dispose d'autorisations sur un objet dans 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

Si une application utilise plusieurs fois sp_getapplock pour appeler la même ressource de verrou, sp_releaseapplock doit être appelée autant 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 AdventureWorks.

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