Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Gibt eine Sperre für eine Anwendungsressource frei.
Transact-SQL-Syntaxkonventionen
Syntax
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Argumente
[ @Resource = ] N'Ressource'
Der Name einer Sperrressource, der von der Clientanwendung angegeben wird.
@Resource ist nvarchar(255), mit einem Standardwert von NULL.
@Resource binär verglichen wird, wird daher unabhängig von den Sortierungseinstellungen der aktuellen Datenbank die Groß-/Kleinschreibung beachtet.
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.
[ @LockOwner = ] 'LockOwner'
Der Besitzer der Sperre, bei dem es sich um den @LockOwner Wert handelt, als die Sperre angefordert wurde.
@LockOwner ist varchar(32) mit einem Standardwert von Transaction. Der Wert kann auch sein Session. Wenn der @LockOwner Wert "Transaction" standardmäßig oder explizit angegeben ist, sp_getapplock muss innerhalb einer Transaktion ausgeführt werden.
[ @DbPrincipal = ] N'DbPrincipal'
Die Benutzer-, Rollen- oder Anwendungsrolle, die über Berechtigungen für ein Objekt in einer Datenbank verfügt.
@DbPrincipal ist "sysname" mit einem Standardwert von public. Um eine Funktion erfolgreich aufzurufen, muss der Aufrufer der Funktion Mitglied einer der folgenden festen Datenbankrollen sein: database_principal, dbo oder db_owner.
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 mehrmals für dieselbe Sperrressource aufruft sp_getapplock , muss dieselbe Anzahl von Male aufgerufen werden, sp_releaseapplock um die Sperre freizugeben.
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 AdventureWorks2025-Datenbank aufgehoben.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO