Найти, какая база данных была затронута, когда база данных не найдена?

#sql-server #ssms

#sql-server #ssms

Вопрос:

Я выполнил запрос из файла .sql в SSMS, который начинается с запроса «ИСПОЛЬЗОВАТЬ»:

 use mydatabase
Go
 

Однако в mydatabase произошла опечатка. это была myddatabase, и я получил следующую ошибку:

База данных ‘myddatabase‘ не существует. Убедитесь, что имя введено правильно.

После этого появляется множество успешных insert запросов со следующим сообщением:

(Затронута 1 строка)

Поэтому я боюсь, что эти запросы выполняются в другой базе данных. Как я могу найти, какая база данных была затронута? Существует ли база данных по умолчанию?

Комментарии:

1. Проверьте каждую базу данных на наличие таблицы, в которую вы вставили. Таблица должна существовать для успешной вставки.

Ответ №1:

Вы обновили базу данных, которая была активна до USE инструкции.

Это означает, что если master база данных была активной, и вы пишете заявление, например

 USE myddatabase
 

и этот оператор выдает ошибку, все строки ниже после GO выполняются в master .

Вы всегда можете легко увидеть, какая база данных активна в правом нижнем углу вашего SSMS .

введите описание изображения здесь

Комментарии:

1. Да! основная база данных была взорвана! Что тогда происходит? :))

2. Вы создали, вероятно, все таблицы, представления или что-то еще, а затем вставили данные в эти таблицы. Перейдите в свой SSMS, разверните каталог базы данных, затем System database, а затем master. Вы найдете все, что вы там создаете.

3. Да, в моем запросе были таблицы, которые я создал. Разве главная база данных не является модератором других баз данных? В главной базе данных сейчас есть только созданные таблицы, но как другие базы данных все еще работают нормально?

4. В главной базе данных хранится первичная конфигурация вашего SQL Server, но это не мешает вам создавать в этой базе данных все, что вы хотите, даже если это не очень хорошая практика, вы можете создать несколько таблиц отслеживания, журналы команд и т. Д.