Поделиться через


sp_kill_filestream_non_transacted_handles (Transact-SQL)

Область применения: SQL Server

Закрывает нетрансляционные дескрипторы файлов к данным FileTable.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_kill_filestream_non_transacted_handles [
    [ @table_name = ] 'table_name'
    , [ [ @handle_id = ] handle_id ]
    ]

Аргументы

[ @table_name = ] 'table_name'

Имя таблицы, в которой закрываются нетрансляционные дескрипторы.

Вы можете передать table_name без handle_id , чтобы закрыть все открытые нетрансляционные дескрипторы для FileTable.

Можно передать NULL значение table_name , чтобы закрыть все открытые нетрансляционные дескрипторы для всех файловых таблицы в текущей базе данных. По умолчанию устанавливается значение NULL.

[ @handle_id = ] handle_id

Дополнительный код отдельного дескриптора, который будет закрыт. Вы можете получить handle_id из динамического представления управления sys.dm_filestream_non_transacted_handles . Каждый идентификатор является уникальным в экземпляре SQL Server. Если указать handle_id, необходимо также указать значение для table_name.

Можно передать NULL значение handle_id , чтобы закрыть все открытые нетрансляционные дескрипторы для FileTable, указанного table_name. По умолчанию устанавливается значение NULL.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Нет.

Замечания

Handle_id, необходимые для sp_kill_filestream_non_transacted_handles работы, не связаны с session_id единицей работы, используемой в других kill командах.

Дополнительные сведения см. в статье Управление таблицами FileTable.

Метаданные

Для получения сведений об открытых нетрансляционных дескрипторах файлов запросите динамическое представление управления sys.dm_filestream_non_transacted_handles.

Разрешения

Для получения дескрипторов файлов из динамического административного sys.dm_filestream_non_transacted_handles представления и запуска sp_kill_filestream_non_transacted_handlesнеобходимо иметь разрешение VIEW DATABASE STATE.

Примеры

В следующих примерах показано, как вызывать sp_kill_filestream_non_transacted_handles нетрансляционные дескрипторы файлов для данных FileTable.

-- Close all open handles in the current database.
sp_kill_filestream_non_transacted_handles;

-- Close all open handles in myFileTable.
sp_kill_filestream_non_transacted_handles @table_name = 'myFileTable';

-- Close a specific handle in myFileTable.
sp_kill_filestream_non_transacted_handles @table_name = 'myFileTable', @handle_id = 0xFFFAAADD;

В следующем примере показано, как использовать скрипт для получения handle_id и закрытия.

DECLARE @handle_id VARBINARY(16);
DECLARE @table_name SYSNAME;

SELECT TOP 1 @handle_id = handle_id,
    @table_name = Object_name(table_id)
FROM sys.dm_FILESTREAM_non_transacted_handles;

EXEC sp_kill_filestream_non_transacted_handles @dbname,
    @table_name,
    @handle_id;
GO