Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Liberta um bloqueio num recurso de aplicação.
Transact-SQL convenções de sintaxe
Sintaxe
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Arguments
[ @Resource = ] N'Resource'
Um nome de recurso de bloqueio especificado pela aplicação cliente.
@Resource é nvarchar(255), com um padrão de NULL.
@Resource é comparado binariamente, pelo que é sensível a maiúsculas minúsculas independentemente das definições de colação da base de dados atual.
A aplicação deve garantir que o recurso é único. O nome especificado é hashado internamente num valor que pode ser armazenado no gestor de bloqueios do SQL Server.
[ @LockOwner = ] 'DonoFechaduras'
O proprietário da fechadura, que é o valor @LockOwner quando a fechadura foi solicitada.
@LockOwner é varchar(32), com um padrão de Transaction. O valor também pode ser Session. Quando o valor @LockOwner é Transação, por defeito ou especificado explicitamente, sp_getapplock deve ser executado a partir de dentro de uma transação.
[ @DbPrincipal = ] N'DbDiretor'
O utilizador, função ou função de aplicação que tem permissões para um objeto numa base de dados.
@DbPrincipal é sysname, com o padrão de public. O chamador da função deve ser membro de database_principal, dbo ou da db_owner função fixa na base de dados para conseguir chamar a função com sucesso.
Valores de código de retorno
>= 0 (sucesso), ou < 0 (fracasso).
| Valor | Result |
|---|---|
0 |
Lock foi libertado com sucesso. |
-999 |
Indica validação de parâmetros ou outro erro de chamada. |
Observações
Quando uma aplicação chama sp_getapplock várias vezes para o mesmo recurso de bloqueio, sp_releaseapplock deve ser chamada o mesmo número de vezes para libertar o bloqueio.
Quando o servidor desliga por qualquer motivo, os bloqueios são libertados.
Permissions
Requer adesão à função pública de .
Examples
O exemplo seguinte liberta o bloqueio associado à transação atual no recurso Form1 na AdventureWorks2025 base de dados.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO