다음을 통해 공유


sp_attach_db(Transact-SQL)

업데이트: 2006년 12월 12일

서버에 데이터베이스를 첨부합니다.

ms179877.note(ko-kr,SQL.90).gif중요:
Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 CREATE DATABASE database_name FOR ATTACH를 사용하는 것이 좋습니다. 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하십시오.

[!참고] 하나 이상의 로그 파일에 새 위치가 있는 경우 여러 로그 파일을 다시 작성하려면 CREATE DATABASE database_name FOR ATTACH_REBUILD_LOG를 사용합니다.

ms179877.security(ko-kr,SQL.90).gif보안 정보:
알 수 없거나 신뢰할 수 없는 출처의 데이터베이스는 연결 또는 복원하지 않는 것이 좋습니다. 이러한 데이터베이스에 포함된 악성 코드가 의도하지 않은 Transact-SQL 코드를 실행하거나 스키마 또는 물리적 데이터베이스 구조를 수정하여 오류가 발생할 수 있습니다. 알 수 없거나 신뢰할 수 없는 출처의 데이터베이스를 사용하기 전에 프로덕션 서버가 아닌 서버에서 해당 데이터베이스에 대해 DBCC CHECKDB를 실행하고 저장 프로시저 또는 다른 사용자 정의 코드 같은 데이터베이스의 코드도 검사하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_attach_db [ @dbname= ] 'dbname'
        , [ @filename1= ] 'filename_n' [ ,...16 ] 

인수

  • [ @dbname= ] **'**dbnam '
    서버에 첨부될 데이터베이스의 이름입니다. 이 이름은 고유해야 합니다. dbnamesysname이며 기본값은 NULL입니다.
  • [ @filename1= ] 'filename_n'
    경로를 포함한 데이터베이스 파일의 물리적 이름입니다. filename_n은 **nvarchar(260)**이며 기본값은 NULL입니다. 파일 이름은 16개까지 지정할 수 있습니다. 매개 변수 이름은 @filename1에서 시작하여 @filename16까지 증가합니다. 파일 이름 목록에는 적어도 주 파일이 포함되어야 합니다. 주 파일에는 데이터베이스의 다른 파일을 가리키는 시스템 테이블이 포함됩니다. 또한 목록은 데이터베이스가 분리된 다음 이동된 모든 파일을 포함해야 합니다.

    [!참고] 이 인수는 CREATE DATABASE 문의 FILENAME 매개 변수에 매핑됩니다. 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하십시오.

    SQL Server 2005 데이터베이스 엔진에서는 연결 중인 데이터베이스에 속하는 모든 전체 텍스트 파일이 데이테베이스와 함께 연결됩니다. 전체 텍스트 카탈로그의 새 경로를 지정하려면 파일 이름 없이 디렉터리 이름을 제공하여 카탈로그 파일을 지정할 수 있습니다. 자세한 내용은 전체 텍스트 카탈로그 연결 및 분리를 참조하십시오.

    [!참고] 전체 텍스트 카탈로그는 루트 디렉터리에 연결할 수 없습니다.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

없음

주의

sp_attach_db 저장 프로시저는 명시적 sp_detach_db 작업을 사용하여 데이터베이스 서버에서 이전에 분리된 데이터베이스나 복사된 데이터베이스에서만 실행해야 합니다. 16개 이상의 파일을 지정해야 하는 경우에는 CREATE DATABASE database_name FOR ATTACH 또는 CREATE DATABASE database_name FOR_ATTACH_REBUILD_LOG를 사용합니다. 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하십시오.

지정되지 않은 모든 파일은 마지막으로 알려진 위치에 있는 것으로 가정합니다. 다른 위치에서 파일을 사용하려면 새 위치를 지정해야 합니다.

최신 버전의 SQL Server에서 만든 데이터베이스를 이전 버전에서 연결할 수 없습니다.

[!참고] 데이터베이스 스냅숏은 분리하거나 연결할 수 없습니다.

분리되지 않고 복사된 복제 데이터베이스를 연결하는 경우에는 다음 사항을 고려합니다.

  • 데이터베이스를 원래 데이터베이스와 동일한 서버 인스턴스 및 버전에 연결하는 경우에는 추가 작업이 필요하지 않습니다.
  • 데이터베이스를 동일한 서버 인스턴스의 업그레이드된 버전에 연결하는 경우에는 연결 작업이 완료된 다음 sp_vupgrade_replication을 실행하여 복제를 업그레이드해야 합니다.
  • 데이터베이스를 버전에 관계없이 다른 서버 인스턴스에 연결하는 경우에는 연결 작업이 완료된 다음 sp_removedbreplication을 실행하여 복제를 제거해야 합니다.

사용 권한

데이터베이스 연결 시 권한 처리 방법은 CREATE DATABASE(Transact-SQL)를 참조하십시오.

다음 예에서는 AdventureWorks의 파일을 현재 서버에 연결합니다.

EXEC sp_attach_db @dbname = N'AdventureWorks', 
    @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf', 
    @filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_log.ldf';

참고 항목

참조

sp_detach_db(Transact-SQL)
sp_helpfile(Transact-SQL)
sp_removedbreplication(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)

관련 자료

데이터베이스 분리 및 연결
데이터 및 로그 파일 보안
전체 텍스트 카탈로그 연결 및 분리

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • 더 최근 버전의 SQL Server에서 만든 데이터베이스를 이전 버전에서 연결할 수 없다고 "주의" 섹션을 업데이트했습니다.

2005년 12월 5일

새로운 내용
  • 보안 정보를 추가했습니다.