Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Снимает блокировку ресурса приложения.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Аргументы
[ @Resource = ] N'Ресурс
Имя ресурса блокировки, указанное клиентским приложением.
@Resource — nvarchar(255) с значением по умолчаниюNULL.
@Resource сравнивается с двоичными данными, поэтому учитывается регистр независимо от параметров сортировки текущей базы данных.
Приложение должно убедиться в уникальности ресурса. Указанное имя хэшируется внутренне в значение, которое может храниться в диспетчере блокировки SQL Server.
[ @LockOwner = ] 'Владелец замка'
Владелец блокировки, который является значением @LockOwner при запросе блокировки.
@LockOwner — varchar(32) с значением по умолчаниюTransaction. Значение также может быть Session.
Если значение @LockOwner — Транзакция, по умолчанию или указанная явно, sp_getapplock должна выполняться из транзакции.
[ @DbPrincipal = ] N'DbPrincipal'
Роль пользователя, роли или приложения, которая имеет разрешения на объект в базе данных.
@DbPrincipal — sysname с значением по умолчаниюpublic. Вызывающий эту функцию участник должен быть членом предопределенной роли базы данных database_principal, dbo или db_owner, чтобы успешно выполнить вызов этой функции.
Значения кода возврата
>= 0 (успешно) или < 0 (сбой).
| Значение | Результат |
|---|---|
0 |
Блокировка успешно снята. |
-999 |
Сигнализирует об ошибке проверки параметра или о другой ошибке вызова процедуры. |
Замечания
Когда приложение вызывает sp_getapplock несколько раз для одного ресурса блокировки, sp_releaseapplock необходимо вызвать одно и то же количество раз, чтобы освободить блокировку.
При отключении сервера вне зависимости от причины отключения освобождаются все блокировки.
Разрешения
Необходимо быть членом роли public.
Примеры
В следующем примере освобождается блокировка ресурса Form1, связанная с текущей транзакцией в базе данных AdventureWorks2025.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO