데이터베이스 선택

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 데이터 원본에 데이터베이스 이름을 설정할 수 있습니다. SQLDriverConnect 또는 SQLBrowseConnect 호출에 DATABASE =를 지정할 수도 있습니다.

데이터베이스 선택

SQL Server 인스턴스에 연결되어 있는 동안 현재 데이터베이스 설정을 전환할 수 있습니다. 이를 데이터베이스 사용 또는 선택이라고 합니다. 다음과 같은 방법으로 현재 데이터베이스를 전환할 수 있습니다.

  • 응용 프로그램에서 사용하는 데이터베이스 API에 관계없이 Transact-SQL USE database_name 문을 실행합니다.

  • SQL Server Management Studio에서 새 쿼리를 클릭합니다. 쿼리 도구 모음의 사용 가능한 데이터베이스 목록에서 데이터베이스를 선택합니다.

  • SQL Server Native ClientODBC 드라이버에서 SQLSetConnectAttr을 호출하여 SQL_ATTR_CURRENT_CATALOG 연결 특성을 설정합니다.

    [!참고]

    SQL Server 온라인 설명서에서 제공하는 많은 Transact-SQL 참조 예제의 첫 코드 줄은 USE AdventureWorks2008R2입니다. 이렇게 하면 현재 데이터베이스 컨텍스트 대신 명시적으로 지정된 데이터베이스에 대해 예가 실행됩니다.

참고 항목

참조