Seleccionar una base de datos

La mayor parte de los objetos de una instancia de SQL Server se almacenan en bases de datos. Todas las referencias a los objetos de una base de datos tienen que resolverse explícita o implícitamente en la base de datos específica en la que residen.

Referencias a bases de datos

Las referencias explícitas a bases de datos se producen cuando una instrucción de Transact-SQL nombra la base de datos que contiene los datos. En el siguiente ejemplo se nombra explícitamente la base de datos AdventureWorks2008R2:

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

Las referencias implícitas a bases de datos se producen cuando una instrucción Transact-SQL no especifica la base de datos, por ejemplo:

SELECT BusinessEntityID, LoginID, NationalIDNumber
FROM HumanResources.Employee;

Para resolver las referencias implícitas a bases de datos, SQL Server usa el concepto de base de datos actual. Cada conexión a una instancia de SQL Server tiene siempre una base de datos establecida como base de datos actual. Se supone que todas las referencias de objeto que no especifican un nombre de base de datos hacen referencia a la base de datos actual. Por ejemplo, si una conexión tiene establecida AdventureWorks2008R2 como su base de datos actual, cualquier instrucción que haga referencia a un objeto denominado Product se resuelve en la tabla Product de AdventureWorks2008R2.

Base de datos predeterminada

Cada inicio de sesión de SQL Server tiene una base de datos predeterminada. En el momento en que un miembro del rol fijo de servidor sysadmin define un inicio de sesión, puede especificar la base de datos predeterminada para el inicio de sesión. Si no especifica una base de datos predeterminada, la maestra se convierte en la base de datos predeterminada para el inicio de sesión. La base de datos predeterminada para un inicio de sesión se puede cambiar posteriormente mediante el procedimiento almacenado sp_defaultdb.

Cuando se conecta a SQL Server por primera vez, la base de datos predeterminada para el inicio de sesión suele convertirse en la base de datos actual. No obstante, puede especificar que una determinada base de datos sea la base de datos actual en el momento de la conexión. Esta solicitud anula la base de datos predeterminada designada para el inicio de sesión. Se puede especificar una base de datos en una solicitud de conexión de las siguientes maneras:

  • En la utilidad sqlcmd, especifique el nombre de la base de datos con el modificador /d.

  • En ADO, especifique el nombre de la base de datos en la propiedad Initial Catalog de un objeto de conexión ADO.

  • En el proveedor OLE DB de SQL Server Native Client, especifique el nombre de la base de datos en la propiedad DBPROP_INIT_CATALOG.

  • En el controlador ODBC de SQL Server Native Client puede establecer un nombre de base de datos en un origen de datos ODBC mediante el cuadro Base de datos del Asistente para configuración de DSN de Microsoft SQL Server o el parameter DATABASE = en una llamada a SQLConfigDataSource. También puede especificar DATABASE = en una llamada a SQLDriverConnect o SQLBrowseConnect.

Seleccionar una base de datos

Mientras está conectado a una instancia de SQL Server, puede cambiar la configuración de la base de datos actual cuando lo desee. Este proceso se conoce como usar o seleccionar una base de datos. Puede cambiar la base de datos actual de las siguientes maneras:

  • Ejecute la instrucción Transact-SQL USE database_name, independientemente de la API de base de datos que esté usando una aplicación.

  • En SQL Server Management Studio, haga clic en Nueva consulta. En la barra de herramientas de consulta, seleccione una base de datos de la lista de bases de datos disponibles.

  • En el controlador ODBC de SQL Server Native Client, llame a SQLSetConnectAttr para establecer el atributo de conexión SQL_ATTR_CURRENT_CATALOG.

    Nota

    En muchos de los ejemplos de referencia de Transact-SQL incluidos en los Libros en pantalla de SQL Server, la primera línea de código del ejemplo es USE AdventureWorks2008R2. Esto garantiza que el ejemplo se ejecuta en la base de datos especificada explícitamente, en lugar de hacerlo en otra base de datos.

Vea también

Referencia