다음을 통해 공유


sp_attach_single_file_db(Transact-SQL)

적용 대상: SQL Server

현재 서버에 하나의 데이터 파일만 있는 데이터베이스를 연결합니다. sp_attach_single_file_db 은 여러 데이터 파일과 함께 사용할 수 없습니다.

Important

SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 CREATE DATABASE <database_name> FOR ATTACH를 사용하는 것이 좋습니다. 자세한 내용은 CREATE DATABASE를 참조하세요. 복제된 데이터베이스에서는 이 절차를 사용하지 마세요.

알 수 없거나 신뢰할 수 없는 원본에서 데이터베이스를 연결하거나 복원하지 마세요. 이러한 데이터베이스에 포함된 악성 코드가 의도하지 않은 Transact-SQL 코드를 실행하거나 스키마 또는 물리적 데이터베이스 구조를 수정하여 오류가 발생할 수 있습니다. 알 수 없거나 신뢰할 수 없는 소스의 데이터베이스를 사용하기 전에 비프로덕션 서버의 데이터베이스에서 DBCC CHECKDB 를 실행하여 데이터베이스에서 코드(예: 저장 프로시저 또는 다른 사용자 정의 코드)를 시험해 보세요.

Transact-SQL 구문 표기 규칙

구문

sp_attach_single_file_db
    [ @dbname = ] N'dbname'
    , [ @physname = ] N'physname'
[ ; ]

인수

[ @dbname = ] N'dbname'

서버에 연결할 데이터베이스의 이름입니다. @dbname 기본값이 없는 sysname입니다.

[ @physname = ] N'physname'

데이터베이스 파일의 실제 이름(경로 포함)입니다. @physname nvarchar(260)이며 기본값은 없습니다.

이 인수는 FILENAME 문의 매개 변수에 매핑됩니다 CREATE DATABASE . 자세한 내용은 CREATE DATABASE를 참조하세요.

참고 항목

전체 텍스트 카탈로그 파일이 포함된 SQL Server 2005(9.x) 데이터베이스를 SQL Server의 최신 서버 인스턴스에 연결하는 경우 카탈로그 파일은 SQL Server 2005(9.x)와 동일한 다른 데이터베이스 파일과 함께 이전 위치에서 연결됩니다. 자세한 내용은 전체 텍스트 검색 업그레이드를 참조하세요.

반환 코드 값

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

결과 집합

없음.

설명

명시적 sp_detach_db 작업을 사용하거나 복사한 데이터베이스에서 이전에 서버에서 분리된 데이터베이스에만 사용합니다sp_attach_single_file_db.

sp_attach_single_file_db 는 단일 로그 파일이 있는 데이터베이스에서만 작동합니다. 데이터베이스를 서버에 연결하면 sp_attach_single_file_db 새 로그 파일이 빌드됩니다. 데이터베이스가 읽기 전용인 경우 로그 파일은 이전 위치에 빌드됩니다.

참고 항목

데이터베이스 스냅샷은 분리하거나 연결할 수 없습니다.

복제된 데이터베이스에서는 이 절차를 사용하지 마세요.

사용 권한

데이터베이스가 연결될 때 사용 권한을 처리하는 방법에 대한 자세한 내용은 CREATE DATABASE를 참조하세요.

예제

다음 예제에서는 분리한 AdventureWorks2022 다음 현재 서버에 하나의 파일을 AdventureWorks2022 첨부합니다.

USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2022';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2022',
    @physname =
N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_Data.mdf';