Как изменить контекст базы данных в Microsoft SQL Server? Команда USE

Привет, в этой небольшой заметке я расскажу начинающим программистам и администраторам Microsoft SQL Server о достаточно простом действии, о том, как изменяется контекст базы данных в SQL инструкциях, также я покажу, как это можно сделать в графической среде SQL Server Management Studio.

Если Вы обслуживаете или будете обслуживать несколько баз данных на одном экземпляре SQL Server, то, скорей всего, Вам придётся в своих SQL инструкциях менять контекст подключения к базе данных. Лично я Вам рекомендую во всех своих инструкциях (если у Вас несколько баз данных) принудительно указывать контекст базы данных, иными словами, к какой базе данных относится та или иная SQL инструкция.

В Microsoft SQL Server это делается с помощью команды USE.

Команда USE

Команда USE в T-SQL

USE – команда, с помощью которой можно переключать контекст базы данных в SQL инструкциях. В качестве параметра данной команде необходимо просто передать название базы данных, в контексте которой Вам необходимо выполнить SQL инструкцию.

Следует отметить, что для того чтобы использовать команду USE, у Вас должны быть соответствующие права, а именно: разрешение CONNECT на целевую базу данных, т.е. Вы имеете право подключаться к этой базе данных.

Когда Вы подключаетесь к SQL серверу, Ваш контекст настроен на базу данных по умолчанию, если Вы или администратор Вам не указал такую базу данных для имени входа, то по умолчанию Вы будете подключаться к базе master.

Заметка! Блокировки в Microsoft SQL Server – что это такое и для чего нужны.

Пример использования команды USE

В качестве примера давайте напишем простую инструкцию, в которой мы подключимся к базе данных TestDB, выполним тестовый запрос (вызовем функцию DB_NAME), а затем сменим контекст базы данных на другую, в нашем примере это будет база master.

   
   USE TestDB
   GO
   --Инструкции для базы данных TestDB
   SELECT DB_NAME() AS [Имя базы данных]

   USE master
   GO
   --Инструкции для базы данных master
  SELECT DB_NAME() AS [Имя базы данных]

Скриншот 1

Меняем контекст базы данных с помощью Management Studio

Посмотреть, к какой базе данных Вы подключены в данный момент, а также переключить контекст на другую базу данных, Вы можете в среде SQL Server Management Studio.

Данный функционал расположен на панели редактора SQL запросов.

Скриншот 2

Как сменить контекст подключения к базе данных, мы с Вами рассмотрели, однако мне хотелось бы еще отметить то, что Microsoft SQL Server позволяет в SQL инструкциях обращаться к объектам, которые расположены в разных базах данных на одном экземпляре SQL сервера. Иными словами, не меняя контекст подключения, мы, например, можем запросить данные из таблицы, которая расположена в другой базе данных, вызвать хранимую процедуру или функцию.

Это делается с помощью указания полного четырехсоставного имени объекта, только имя сервера можно не указывать.

Например, следующий запрос выполнится успешно, и мы получим данные из таблицы TestTable, хотя, как Вы понимаете, таблицы TestTable в базе данных master нет (именно на ней будет контекст выполнения).

   
   USE master
   GO
   SELECT * FROM TestDB.dbo.TestTable

Где:

  • TestDB – имя базы данных;
  • dbo –имя схемы;
  • TestTable – имя таблицы.

Заметка! Начинающим рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать на T-SQL.

У меня на этом все, удачи!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Комментарии: 1
  1. Игорь

    Здравствуйте!
    Подскажите, плиз, синтаксис, как после USE указать более одной базы? Чтобы дальнейший запрос(одинаковый) отрабатывал по ним всем, без необходимости повторять код для каждой отдельно?

Добавить комментарий для Игорь Отменить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.