选择数据库

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 的对象的语句都被解析到 AdventureWorks2008R2 中的 Product 表。

默认数据库

每个 SQL Server 登录都有一个默认数据库。在由 sysadmin 固定服务器角色的成员定义登录时,可以指定登录的默认数据库。如果未指定默认数据库,则 master 数据库成为登录的默认数据库。登录的默认数据库可以在以后使用 sp_defaultdb 存储过程进行更改。

第一次连接到 SQL Server 实例时,登录的默认数据库通常成为当前数据库。但也可以在连接时指定特定数据库作为当前数据库。此请求覆盖为该登录所指定的默认数据库。您可以按以下方式在连接请求中指定数据库:

  • sqlcmd 实用工具中,使用 /d 开关指定数据库名称。

  • 在 ADO 中,在 ADO 连接对象的 Initial Catalog 属性中指定数据库名称。

  • 在 SQL Server Native Client OLE DB 访问接口中,在 DBPROP_INIT_CATALOG 属性中指定数据库名称。

  • 在 SQL Server Native Client ODBC 驱动程序中,您可以使用 Microsoft SQL Server DSN 配置向导的**“数据库”**框,或针对 SQLConfigDataSource 的调用使用 DATABASE = parameter,在 ODBC 数据源中设置一个数据库名称。您还可以针对调用 SQLDriverConnectSQLBrowseConnect 指定 DATABASE =。

选择数据库

您可以在连接到 SQL Server 实例时切换当前数据库设置。这称为使用或选择一个数据库。可以按以下方式切换当前数据库:

  • 执行 Transact-SQL USE database_name 语句,而不考虑应用程序所使用的数据库 API。

  • 在 SQL Server Management Studio 中,单击**“新建查询”**。在查询工具栏上,从可用数据库列表中选择一个数据库。

  • 在 SQL Server Native ClientODBC 驱动程序中,调用 SQLSetConnectAttr 以设置 SQL_ATTR_CURRENT_CATALOG 连接属性。

    注意注意

    在 SQL Server 联机丛书的许多 Transact-SQL 参考示例中,示例的第一行代码是 USE AdventureWorks2008R2。这保证此示例是针对显式指定的文件(而非当前数据库上下文)来执行。