Aplica-se 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

Sintomas

Durante a inicialização do Microsoft SQL Server 2016 e do 2017, se um usuário tentar para se conectar a um banco de dados antes de ser iniciado, a sessão do usuário pode causar o banco de dados para ser iniciado automaticamente. Quando isso ocorre, se o banco de dados contém um Filetable e with FILESTREAM non_transacted_access habilitado e, em seguida, o nível de banco de dados O diretório filetable não pode ser acessado após a inicialização do banco de dados. Se você tentar acessar a pasta por meio do explorador de arquivos, isso pode indicar que a pasta é indisponível. Quando você executa um comando "dir" do prompt de comando, ele retorna "o sistema não pode encontrar o arquivo especificado."

Além disso, você pode ver os erros a seguir no log de erros que indicam que uma sessão do usuário acionou o banco de dados para iniciar automaticamente:

DateTime Erro de logon: 18456, severidade: 14, estado: 38.

DateTime Falha no logon de logon do usuário ' nome_do_usuário '. Motivo: falha ao abrir o banco de dados do banco de dados explicitamente especificado ' DatabaseName '. [Cliente: IPNumber]

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Resolução

Esse problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:

Sobre atualizações cumulativas do SQL Server:

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:

Solução alternativa

A solução alternativa para esse problema é desabilitar e habilitar novamente a non_transacted_access FILESTREAM do banco de dados.

ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK Immediate

ALTER DATABASE [DatabaseName] Set FILESTREAM (NON_TRANSACTED_ACCESS = off)

ALTER DATABASE [DatabaseName] Set FILESTREAM (NON_TRANSACTED_ACCESS = Full)

ALTER DATABASE [DatabaseName] Set MULTI_USER with Rollback Immediate

Referências

Saiba mais sobre   oterminologia usada pela Microsoft para descrever atualizações de software.

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.