sp_releaseapplock (Transact-SQL)sp_releaseapplock (Transact-SQL)

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)síAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Libera un bloqueo en un recurso de aplicación.Releases a lock on an application resource.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax


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

ArgumentosArguments

[ @Resource=] 'resource_name'[ @Resource= ] 'resource_name'
Es un nombre de recurso de bloqueo especificado por la aplicación cliente.Is a lock resource name specified by the client application. La aplicación debe garantizar que el recurso es único.The application must ensure that the resource is unique. El nombre especificado se convierte internamente mediante un algoritmo hash en un valor que puede almacenarse en el administrador de bloqueos de SQL ServerSQL Server.The specified name is hashed internally into a value that can be stored in the SQL ServerSQL Server lock manager. resource_name es nvarchar (255) no tiene ningún valor predeterminado.resource_name is nvarchar(255) with no default. resource_name es binario en comparación, lo que distingue mayúsculas de minúsculas, independientemente de la configuración de intercalación de la base de datos actual.resource_name is binary compared, thus is case-sensitive regardless of the collation settings of the current database.

[ @LockOwner=] 'lock_owner'[ @LockOwner= ] 'lock_owner'
Es el propietario del bloqueo, que es el valor de lock_owner cuando se solicitó el bloqueo.Is the owner of the lock, which is the lock_owner value when the lock was requested. lock_owner es nvarchar(32).lock_owner is nvarchar(32). El valor puede ser Transaction (predeterminado) o Session.The value can be Transaction (the default) or Session. Cuando el lock_owner valor es transacciones, predeterminado o especificar explícitamente, sp_getapplock debe ejecutarse desde dentro de una transacción.When the lock_owner value is Transaction, by default or specified explicitly, sp_getapplock must be executed from within a transaction.

[ @DbPrincipal=] 'database_principal'[ @DbPrincipal= ] 'database_principal'
Es el usuario, el rol o el rol de aplicación que tiene permisos para un objeto de una base de datos.Is the user, role, or application role that has permissions to an object in a database. El autor de la llamada de la función debe ser miembro de database_principal, de dbo o del rol fijo de base de datos db_owner para poder llamar a la función correctamente.The caller of the function must be a member of database_principal, dbo, or the db_owner fixed database role in order to call the function successfully. El valor predeterminado es public.The default is public.

Valores de código de retornoReturn Code Values

>= 0 (correcto) o < 0 (error)>= 0 (success), or < 0 (failure)

ValueValue ResultadoResult
00 El bloqueo se ha liberado correctamente.Lock was successfully released.
-999-999 Indica un error de validación de parámetros u otro error de llamada.Indicates parameter validation or other call error.

ComentariosRemarks

Si una aplicación llama a sp_getapplock varias veces para el mismo recurso de bloqueo, es necesario llamar a sp_releaseapplock el mismo número de veces para liberar el bloqueo.When an application calls sp_getapplock multiple times for the same lock resource, sp_releaseapplock must be called the same number of times to release the lock.

Los bloqueos se liberan si el servidor se cierra por cualquier razón.When the server shuts down for any reason, the locks are released.

PermissionsPermissions

Debe pertenecer al rol public.Requires membership in the public role.

EjemplosExamples

En el ejemplo siguiente se libera el bloqueo asociado a la transacción actual en el recurso Form1 de la base de datos AdventureWorks2012.The following example releases the lock associated with the current transaction on the resource Form1 in the AdventureWorks2012 database.

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

Vea tambiénSee Also

APPLOCK_MODE (Transact-SQL) APPLOCK_MODE (Transact-SQL)
APPLOCK_TEST (Transact-SQL) APPLOCK_TEST (Transact-SQL)
sp_getapplock (Transact-SQL)sp_getapplock (Transact-SQL)