Выбор базы данных

Большинство объектов экземпляра SQL Server хранятся в базах данных. Все ссылки на объекты базы данных должны явно или неявно разрешаться на конкретную базу данных, в которой они находятся.

Ссылки на базы данных

Явная ссылка — это когда инструкция Transact-SQL содержит имя базы данных, в которой находятся данные. В следующем примере явно указана база данных AdventureWorks2008R2:

SELECT BusinessEntityID, LoginID, NationalIDNumber
FROM AdventureWorks2008R2.HumanResources.Employee;

Неявная ссылка — это когда в инструкции Transact-SQL база данных не указана. Например:

SELECT BusinessEntityID, LoginID, NationalIDNumber
FROM HumanResources.Employee;

Чтобы разрешить неявные ссылки на базу данных, SQL Server применяет понятие текущей базы данных. Каждое соединение с экземпляром SQL Server всегда подразумевает текущую базу данных. Предполагается, что все ссылки на объекты, в которых имя базы данных не указано, ссылаются на текущую базу данных. Например, если текущей базой данных для соединения является База данных AdventureWorks2008R2, любая инструкция, ссылающаяся на объект с именем Product, обращается к таблице Product в базе данных База данных AdventureWorks2008R2.

База данных по умолчанию

Каждое имя входа SQL Server имеет базу данных по умолчанию. При создании имени входа членом предопределенной роли сервера sysadmin для него может быть задана база данных по умолчанию. Если база данных по умолчанию не задана, то для этого имени входа ею становится база данных master. Базу данных по умолчанию можно изменить с помощью хранимой процедуры sp_defaultdb.

При первом подключении к экземпляру SQL Server базой данных по умолчанию для имени входа обычно становится текущая база данных. Однако во время подключения в качестве базы данных по умолчанию может быть указана конкретная база данных. Такой запрос переопределяет базу данных по умолчанию, назначенную для имени входа. Базу данных при запросе соединения можно задать следующими способами.

  • В программе sqlcmd имя базы данных указывается параметром /d.

  • В ADO имя базы данных указывается в свойстве Initial Catalog объекта Connection.

  • В поставщике OLE DB для собственного клиента SQL Server имя базы данных указывается в свойстве DBPROP_INIT_CATALOG.

  • В драйвере ODBC для собственного клиента SQL Server можно указать имя базы данных в источнике данных ODBC в поле База данных мастера конфигурации DSN Microsoft SQL Server или указать DATABASE = parameter при вызове функции SQLConfigDataSource. Можно также задать DATABASE = при вызове функции SQLDriverConnect или SQLBrowseConnect.

Выбор базы данных

Можно переключить текущую базу данных, не закрывая соединение с экземпляром SQL Server. Это действие называется переключением, или выбором, базы данных. Переключить текущую базу данных можно одним из следующих способов.

  • Выполните инструкции Transact-SQL USE database_name при помощи любого API, используемого приложением.

  • В среде Среда SQL Server Management Studio нажмите кнопку Создать запрос. На панели инструментов запросов выберите необходимую базу данных из списка доступных баз данных.

  • В драйвере ODBC для собственного клиента SQL Server вызовите функции SQLSetConnectAttr для установки атрибута соединения SQL_ATTR_CURRENT_CATALOG.

    ПримечаниеПримечание

    Во многих ссылочных примерах Transact-SQL в электронной документации по SQL Server первая строка программного кода — это USE AdventureWorks2008R2. Ее присутствие гарантирует, что пример будет выполняться в явно выбранной базе данных, а не в текущем контексте базы данных.

См. также

Справочник