Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Registrati oggiQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare le funzionalità più recenti, gli aggiornamenti della sicurezza e il supporto tecnico.
Si applica a:SQL Server
Viene descritto come abilitare i prerequisiti per la creazione e l'utilizzo di tabelle FileTable.
Per abilitare i prerequisiti per la creazione e l'utilizzo di tabelle FileTable, abilitare gli elementi seguenti:
A livello di istanza:
A livello di database:
Le tabelle FileTable estendono le funzionalità della caratteristica FILESTREAM di SQL Server. È necessario abilitare FILESTREAM per l'accesso I/O ai file a livello di Windows e nell'istanza di SQL Server prima di poter creare e usare le tabelle FileTable.
Per informazioni su come abilitare FILESTREAM, vedere Abilitare e configurare FILESTREAM.
Quando si chiama sp_configure
per abilitare FILESTREAM a livello di istanza, è necessario impostare l'opzione filestream_access_level
su 2
. Per altre informazioni, vedere FILESTREAM access level (opzione di configurazione del server).
Per informazioni sull'abilitazione di FILESTREAM attraverso il firewall, vedere Configure a Firewall for FILESTREAM Access.
Per poter creare FileTable in un database, è necessario che il database disponga di un filegroup FILESTREAM. Per altre informazioni su questo prerequisito, vedere Creare un database abilitato per FILESTREAM.
Le tabelle FileTable consentono alle applicazioni di Windows di ottenere un handle di file Windows per i dati FILESTREAM senza che sia necessaria una transazione. Per consentire questo accesso non transazionale ai file archiviati in SQL Server, è necessario specificare il livello desiderato di accesso non transazionale a livello di database per ogni database che conterrà le tabelle FileTable.
Eseguire una query sulla vistadel catalogo sys.database_filestream_options (Transact-SQL) e controllare le colonne non_transacted_access
e non_transacted_access_desc
.
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
I livelli disponibili di accesso non transazionale sono FULL, READ_ONLY e OFF.
Quando si crea un nuovo database, chiamare l'istruzione CREATE DATABASE (SQL Server Transact-SQL) con l'opzione FILESTREAM NON_TRANSACTED_ACCESS
.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Quando si modifica un database esistente, chiamare l'istruzione ALTER DATABASE (Transact-SQL) con l'opzione FILESTREAM NON_TRANSACTED_ACCESS
.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
È possibile specificare il livello di accesso non transazionale nel campo Accesso FILESTREAM non transazionale della pagina Opzioni della finestra di dialogo Proprietà database. Per altre informazioni su questa finestra di dialogo, vedere Proprietà del database (pagina Opzioni).
Quando si abilita l'accesso non transazionale ai file a livello di database, è anche possibile specificare simultaneamente un nome di directory usando l'opzione DIRECTORY_NAME
. Se non si specifica un nome di directory quando si abilita l'accesso non transazionale, è necessario specificarlo in seguito prima di poter creare le tabelle FileTable nel database.
Nella gerarchia di cartelle FileTable questa directory a livello di database diventa l'elemento figlio del nome di condivisione specificato per FILESTREAM a livello di istanza e l'elemento padre delle tabelle FileTable create nel database. Per altre informazioni, vedere Work with Directories and Paths in FileTables.
Il nome specificato deve essere univoco in tutta l'istanza per le directory a livello di database.
Quando si crea un nuovo database, chiamare l'istruzione CREATE DATABASE (SQL Server Transact-SQL) con l'opzione FILESTREAM DIRECTORY_NAME
.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Quando si modifica un database esistente, chiamare l'istruzione ALTER DATABASE (Transact-SQL) con l'opzione FILESTREAM DIRECTORY_NAME
. Quando si usano queste opzioni per modificare il nome di directory, è necessario bloccare il database in modo esclusivo, senza handle di file aperti.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Quando si collega un database, eseguire l'istruzione CREATE DATABASE (SQL Server Transact-SQL) con l'opzione FOR ATTACH
e FILESTREAM DIRECTORY_NAME
.
CREATE DATABASE database_name
FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Quando si ripristina un database, chiamare l'istruzione RESTORE (Transact-SQL) con l'opzione FILESTREAM DIRECTORY_NAME
.
RESTORE DATABASE database_name
WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
È possibile specificare un nome di directory nel campo Nome di directory FILESTREAM della pagina Opzioni della finestra di dialogo Proprietà database. Per altre informazioni su questa finestra di dialogo, vedere Proprietà del database (pagina Opzioni).
Per visualizzare l'elenco di nomi di directory esistenti per l'istanza, eseguire una query sulla vista del catalogo sys.database_filestream_options (Transact-SQL) e verificare la colonna filestream_database_directory_name
.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
L'impostazione di DIRECTORY_NAME
è facoltativa quando si chiama CREATE DATABASE
o ALTER DATABASE
. Se non si specifica un valore per DIRECTORY_NAME
, il nome di directory rimane Null. Non è tuttavia possibile creare tabelle FileTable nel database se prima non si specifica un valore per DIRECTORY_NAME
a livello di database.
Il nome di directory specificato deve essere conforme ai requisiti del file system relativi ai nomi di directory validi.
Quando il database contiene tabelle FileTable, non è possibile reimpostare DIRECTORY_NAME
su un valore Null.
Quando si collega o ripristina un database, l'operazione non riesce se il nuovo database include un valore per DIRECTORY_NAME
già presente nell'istanza di destinazione. Specificare un valore univoco per DIRECTORY_NAME
quando si chiama CREATE DATABASE FOR ATTACH
o RESTORE DATABASE
.
Quando si aggiorna un database esistente, il valore di DIRECTORY_NAME
è Null.
Quando si abilita o disabilita l'accesso non transazionale a livello di database, l'operazione non verifica se è stato specificato il nome di directory o se questo è univoco.
Quando si elimina un database abilitato per tabelle FileTable, vengono rimosse la directory a livello di database e tutte le strutture di directory di tutte le tabelle FileTable in essa contenute.
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Registrati oggiTraining
Modulo
Gestione delle tabelle in Dataverse - Training
Le tabelle di Dataverse sono simili alle tabelle in un database. Ogni istanza di un database Dataverse include un set di tabelle di base che forniscono la struttura per i dati comunemente usati dalle applicazioni aziendali.
Certificazione
Microsoft Certified: Azure Database Administrator Associate - Certifications
Amministrare un'infrastruttura di database SQL Server per database relazionali, ibridi, locali e cloud con le offerte di database relazionali Microsoft PaaS.