sp_releaseapplock (Transact-SQL)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure
Libera um bloqueio em um recurso de aplicativo.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_releaseapplock [ @Resource = ] 'resource_name'
[ , [ @LockOwner = ] 'lock_owner' ]
[ , [ @DbPrincipal = ] 'database_principal' ]
[ ; ]
Argumentos
@Resource= [ ] 'resource_name'
É um nome de recurso de bloqueio especificado pelo aplicativo cliente. O aplicativo deve garantir que o recurso seja exclusivo. O nome especificado é hashed internamente em um valor que pode ser armazenado no gerenciador de bloqueio do SQL Server. resource_name é nvarchar(255) sem padrão. resource_name é binário comparado, portanto, diferencia maiúsculas de minúsculas, independentemente das configurações de agrupamento do banco de dados atual.
@LockOwner= [ ] 'lock_owner'
É o proprietário do bloqueio, que é o valor de lock_owner quando o bloqueio foi solicitado. lock_owner é nvarchar(32). O valor pode ser Transaction (o padrão) ou Session. Quando o valor lock_owner é Transação, por padrão ou especificado explicitamente, sp_getapplock deve ser executado de dentro de uma transação.
@DbPrincipal= [ ] 'database_principal'
É o usuário, função ou função de aplicativo que tem permissões para um objeto em um banco de dados. 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. O padrão é público.
Valores do código de retorno
>= 0 (sucesso) ou < 0 (fracasso)
Valor | Result |
---|---|
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 public.
Exemplos
O exemplo a seguir libera o bloqueio associado à transação atual no recurso Form1
do banco de dados AdventureWorks2022
.
USE AdventureWorks2022;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1',
@LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';
GO
Confira também
APPLOCK_MODE (Transact-SQL)
APPLOCK_TEST (Transact-SQL)
sp_getapplock (Transact-SQL)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de