Sintomi
Durante l'avvio di Microsoft SQL Server 2016 e 2017, se un utente tenta di connettersi a un database prima che venga avviato, la sessione utente potrebbe causare l'avvio automatico del database. In questo caso, se il database contiene una tabella FileTable e l'non_transacted_access FILESTREAM è abilitato, la directory FileTable a livello di database non è accessibile dopo l'avvio del database. Se tenti di accedere alla cartella tramite Esplora file, potrebbe indicare che la cartella non è disponibile. Quando si esegue un comando "dir" dal prompt dei comandi, viene restituito "Il sistema non riesce a trovare il file specificato".
Inoltre, nel log degli errori potrebbero essere visualizzati gli errori seguenti che indicano che una sessione utente ha attivato l'avvio automatico del database:
DateTime Errore di accesso: 18456, gravità: 14, stato: 38.
DateTime Accesso non riuscito per l'utente 'Nome utente'. Motivo: impossibile aprire il database 'DatabaseName' specificato in modo esplicito. [CLIENT: IPNumber]
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Informazioni sugli aggiornamenti cumulativi per SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:
- Aggiornamento cumulativo più recente per SQL Server 2017
- Aggiornamento cumulativo più recente per SQL Server 2016
Soluzione alternativa
La soluzione alternativa a questo problema consiste nel disabilitare e riabilitare l'non_transacted_access FILESTREAM del database.
ALTER DATABASE [DatabaseName] SET SINGLE_USER CON ROLLBACK IMMEDIATO
ALTER DATABASE [DatabaseName] SET FILESTREAM ( NON_TRANSACTED_ACCESS = OFF )
ALTER DATABASE [DatabaseName] SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL )
ALTER DATABASE [DatabaseName] SET MULTI_USER CON ROLLBACK IMMEDIATO
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.