sp_releaseapplock (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz
Gibt eine Sperre für eine Anwendungsressource frei.
Transact-SQL-Syntaxkonventionen
Syntax
sp_releaseapplock [ @Resource = ] 'resource_name'
[ , [ @LockOwner = ] 'lock_owner' ]
[ , [ @DbPrincipal = ] 'database_principal' ]
[ ; ]
Argumente
[ @Resource= ] 'resource_name'
Der Name einer Sperrressource, der von der Clientanwendung angegeben wird. In der Anwendung muss sichergestellt sein, dass die Ressource eindeutig ist. Der angegebene Name wird intern in einen Wert gehasht, der im SQL Server-Sperr-Manager gespeichert werden kann. resource_name ist nvarchar(255) ohne Standard. resource_name binär verglichen wird, wird daher unabhängig von den Sortierungseinstellungen der aktuellen Datenbank die Groß-/Kleinschreibung beachtet.
[ @LockOwner= ] 'lock_owner'
Der Besitzer der Sperre. Dabei handelt es sich um den Wert von lock_owner beim Anfordern der Sperre. lock_owner ist vom Datentyp nvarchar(32). Der Wert kann Transaction (Standard) oder Session sein. Wenn der lock_owner Wert "Transaction" standardmäßig oder explizit angegeben ist, muss sp_getapplock innerhalb einer Transaktion ausgeführt werden.
[ @DbPrincipal= ] 'database_principal'
Der Benutzer, die Rolle oder die Anwendungsrolle mit Berechtigungen für ein Objekt in einer Datenbank. Um eine Funktion erfolgreich aufzurufen, muss die aufrufende Funktion Mitglied einer der folgenden festen Datenbankrollen sein: database_principal, „dbo“ oder „db_owner“. Der Standardwert ist public.
Rückgabecodewerte
>= 0 (Erfolg) oder < 0 (Fehler)
Wert | Ergebnis |
---|---|
0 | Die Sperre wurde erfolgreich aufgehoben. |
-999 | Weist auf einen Fehler bei der Parameterüberprüfung oder einen anderen Aufruffehler hin. |
Hinweise
Wenn eine Anwendung mehrere Male sp_getapplock für dieselbe Sperrenressource aufruft, muss sp_releaseapplock genauso oft aufgerufen werden, um die Sperre aufzuheben.
Wenn der Server aus irgendeinem Grund heruntergefahren wird, werden die Sperren freigegeben.
Berechtigungen
Erfordert die Mitgliedschaft in der public-Rolle.
Beispiele
Im folgenden Beispiel wird eine Sperre, die der aktuellen Transaktion zugeordnet ist, für die Ressource Form1
in der AdventureWorks2022
-Datenbank aufgehoben.
USE AdventureWorks2022;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1',
@LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';
GO
Weitere Informationen
APPLOCK_MODE (Transact-SQL)
APPLOCK_TEST (Transact-SQL)
sp_getapplock (Transact-SQL)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für