Exportar (0) Imprimir
Expandir Tudo
Expandir Minimizar
Este artigo foi traduzido manualmente. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

sp_releaseapplock (Transact-SQL)

Libera um bloqueio em um recurso de aplicativo.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

sp_releaseapplock [ @Resource = ] 'resource_name' 
     [ , [ @LockOwner = ] 'lock_owner' ]
     [ , [ @DbPrincipal = ] 'database_principal' ]
[ ; ]

[ @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 recebe um hash internamente e, consequentemente, é transformado em um valor que pode ser armazenado no gerenciador de bloqueio do SQL Server. resource_name é nvarchar(255) sem padrão. resource_name é um binário comparado; portanto, ele diferencia maiúsculas e 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 for Transaction, por padrão ou explicitamente especificado, sp_getapplock deverá ser executado 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 de database_principal, dbo ou da função de banco de dados fixa db_owner para chamar a função com êxito. O padrão é público.

>= 0 (êxito) ou < 0 (falha)

Valor

Resultado

0

O bloqueio foi liberado com êxito.

-999

Indica validação de parâmetro ou outro erro de chamada.

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.

Requer associação à função public.

O exemplo a seguir libera o bloqueio associado à transação atual no recurso Form1 do banco de dados AdventureWorks2012.

USE AdventureWorks2012;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1', 
     @LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';
GO

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft