web-dev-qa-db-fra.com

Emplacement de Tempdb brisé et ne peut pas récupérer

Fait une erreur et une commande de base de données d'alter pour TEMPDB.

Maintenant, l'instance ne va pas commencer. Je ne peux pas commencer en mode utilisateur unique en utilisant -m car il est indiqué que le TEMPDB n'a pas pu être trouvé. J'ai essayé d'utiliser:

net start msqsqlserver /f /t3608

Mais alors je ne peux pas me connecter à l'instance à l'aide de sqlcmd ou ssms.

8
Tim Alexander

Démarrez SQL Server en tant qu'application, pas de service, en mode de configuration minimal et ne récupérez que le maître, à partir d'une invite de commande:

[path to this instance]\BINN\sqlservr.exe -c -f -T3608

(Ajouter -s InstanceName S'il s'agit d'une instance nommée.)

Maintenant, dans une autre invite de commande, connectez-vous à l'aide de SQLCMD:

sqlcmd -S InstanceName -E

Et émettre une correction (triple-check this !!!), puis fermez l'application.

> ALTER DATABASE tempdb MODIFY FILE ...
> SHUTDOWN WITH NOWAIT;
> GO
12
Aaron Bertrand