Condividi tramite


sp_kill_filestream_non_transacted_handles (Transact-SQL)

Si applica a: SQL Server

Chiude gli handle di file non transazionali ai dati della tabella FileTable.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @table_name = ] 'table_name'

Nome della tabella in cui chiudere handle non transazionali.

È possibile passare table_name senza handle_id per chiudere tutti gli handle non transazionali aperti per la tabella FileTable.

È possibile passare NULL il valore di table_name per chiudere tutti gli handle non transazionali aperti per tutte le tabelle FileTable nel database corrente. NULL è il valore predefinito.

[ @handle_id = ] handle_id

ID facoltativo del singolo handle da chiudere. È possibile ottenere il handle_id dalla vista a gestione dinamica sys.dm_filestream_non_transacted_handles . Ogni ID è univoco in un'istanza di SQL Server. Se si specifica handle_id, è necessario specificare anche un valore per table_name.

È possibile passare NULL il valore di handle_id per chiudere tutti gli handle non transazionali aperti per la tabella FileTable specificata da table_name. NULL è il valore predefinito.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

Il handle_id richiesto da sp_kill_filestream_non_transacted_handles non è correlato all'unità session_id di lavoro o usata in altri kill comandi.

Per altre informazioni, vedere Gestire le tabelle FileTable.

Metadati UFX

Per informazioni sugli handle di file non transazionali aperti, eseguire una query sulla vista a gestione dinamica sys.dm_filestream_non_transacted_handles.

Autorizzazioni

È necessario disporre dell'autorizzazione sys.dm_filestream_non_transacted_handles VIEW DATABASE STATE per ottenere handle di file dalla vista a gestione dinamica ed eseguire sp_kill_filestream_non_transacted_handles.

Esempi

Negli esempi seguenti viene illustrato come chiamare sp_kill_filestream_non_transacted_handles per chiudere gli handle di file non transazionali per i dati 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;

Nell'esempio seguente viene illustrato come usare uno script per ottenere un handle_id e chiuderlo.

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