Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric
Libera um bloqueio em um recurso de aplicativo.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Argumentos
@Resource [ = ] N'Recurso'
Um nome de recurso de bloqueio especificado pelo aplicativo cliente.
@Resource é nvarchar(255), com um padrão de NULL.
@Resource é comparada em binário, portanto, diferencia maiúsculas de minúsculas, independentemente das configurações de ordenação do banco de dados atual.
O aplicativo deve garantir que o recurso seja exclusivo. O nome especificado é hash internamente em um valor que pode ser armazenado no gerenciador de bloqueio do SQL Server.
@LockOwner [ = ] 'LockOwner'
O proprietário do bloqueio, que é o valor @LockOwner quando o bloqueio foi solicitado.
@LockOwner é varchar(32), com um padrão de Transaction. O valor também pode ser Session. Quando o valor @LockOwneré Transaction, por padrão ou especificado explicitamente, sp_getapplock deve ser executado de dentro de uma transação.
@DbPrincipal [ = ] N'DbPrincipal'
A função de usuário, função ou aplicativo que tem permissões para um objeto em um banco de dados.
@DbPrincipal é sysname, com um padrão de public. O chamador da função deve ser membro da função de banco de dados fixa database_principal, dbo ou db_owner para chamar a função com êxito.
Valores do código de retorno
>= 0 (sucesso) ou < 0 (fracasso).
| Valor | Resultado |
|---|---|
0 |
O bloqueio foi liberado com êxito. |
-999 |
Indica validação de parâmetro ou outro erro de chamada. |
Comentários
Quando um aplicativo chama sp_getapplock várias vezes para o mesmo recurso de bloqueio, sp_releaseapplock deve ser chamado o mesmo número de vezes para liberar o bloqueio.
Quando o servidor é desligado por algum motivo, os bloqueios são liberados.
Permissões
Requer associação à função pública .
Exemplos
O exemplo a seguir libera o bloqueio associado à transação atual no recurso Form1 do banco de dados AdventureWorks2025.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO