Si applica a
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer Windows SQL Server 2017 Enterprise Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Standard Windows

Sintomi

Durante l'avvio di Microsoft SQL Server 2016 e 2017, se un utente prova per connettersi a un database prima che venga avviato, la sessione utente può causare la database da avviare automaticamente. Quando si verifica questo problema, se il database contiene un FileTable e ha NON_TRANSACTED_ACCESS FILESTREAM abilitato, quindi il livello di database La directory FileTable non è accessibile dopo l'avvio del database. Se si prova ad accedere alla cartella tramite Esplora file, potrebbe essere indicato che la cartella è disponibile. Quando si esegue un comando "dir" da prompt dei comandi, viene restituito "il sistema non riesce a trovare il file specificato".

Inoltre, potrebbe essere visualizzato il seguente errore nel log degli errori che indica che una sessione utente ha attivato il database per l'avvio automatico:

DateTime Errore di accesso: 18456, gravità: 14, stato: 38.

DateTime Accesso non riuscito per l'utente "nome utente". Motivo: non è possibile aprire il database specificato in modo esplicito "DatabaseName". [CLIENT: IPNumber]

Stato

Microsoft ha confermato che questo problema si verifica nei 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 tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:

Soluzione alternativa

La soluzione alternativa per questo problema consiste nel disabilitare e riabilitare la non_transacted_access FILESTREAM del database.

ALTER DATABASE [DatabaseName] SET SINGLE_USER con rollback immediate

ALTER DATABASE [DatabaseName] set FILESTREAM (NON_TRANSACTED_ACCESS = disattivato)

ALTER DATABASE [DatabaseName] set FILESTREAM (NON_TRANSACTED_ACCESS = FULL)

ALTER DATABASE [DatabaseName] set MULTI_USER con rollback immediate

Riferimenti

Informazioni sulla  terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.