sp_attach_single_file_db(Transact-SQL)
데이터 파일이 한 개만 있는 데이터베이스를 현재 서버에 연결합니다. sp_attach_single_file_db는 여러 데이터 파일에서 사용할 수 없습니다.
중요 |
---|
Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 CREATE DATABASE database_name FOR ATTACH를 사용하는 것이 좋습니다. 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하십시오. 복제 데이터베이스에는 이 프로시저를 사용하지 마십시오. |
보안 정보 |
---|
알 수 없거나 신뢰할 수 없는 출처의 데이터베이스는 연결 또는 복원하지 않는 것이 좋습니다. 이러한 데이터베이스에 포함된 악성 코드가 의도하지 않은 Transact-SQL 코드를 실행하거나 스키마 또는 물리적 데이터베이스 구조를 수정하여 오류가 발생할 수 있습니다. 알 수 없거나 신뢰할 수 없는 출처의 데이터베이스를 사용하기 전에 프로덕션 서버가 아닌 서버에서 해당 데이터베이스에 대해 DBCC CHECKDB를 실행하고 저장 프로시저 또는 다른 사용자 정의 코드 같은 데이터베이스의 코드도 검사하십시오. |
구문
sp_attach_single_file_db [ @dbname= ] 'dbname'
, [ @physname= ] 'physical_name'
인수
[ @dbname= ] 'dbname'
서버에 연결될 데이터베이스의 이름입니다. 이름은 고유해야 합니다. dbname은 sysname이며 기본값은 NULL입니다.[ @physname= ] 'physical_name'
경로를 포함한 데이터베이스 파일의 물리적 이름입니다. physical_name은 nvarchar(260)이며 기본값은 NULL입니다.[!참고]
이 인수는 CREATE DATABASE 문의 FILENAME 매개 변수에 매핑됩니다. 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하십시오.
SQL Server 2012 서버 인스턴스에 전체 텍스트 카탈로그 파일이 포함된 SQL Server 2005 데이터베이스를 연결할 경우 SQL Server 2005에서와 같이 다른 데이터베이스 파일과 함께 이전 위치에서 카탈로그 파일이 연결됩니다. 자세한 내용은 SQL Server 2005에서 전체 텍스트 검색 업그레이드를 참조하십시오.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
없음
주의
명시적 sp_detach_db 작업을 사용하여 서버에서 이전에 분리된 데이터베이스나 복사된 데이터베이스에서만 sp_attach_single_file_db를 사용해야 합니다.
sp_attach_single_file_db는 단일 로그 파일이 있는 데이터베이스에서만 실행됩니다. sp_attach_single_file_db는 데이터베이스를 서버에 연결할 때 새 로그 파일을 만듭니다. 데이터베이스가 읽기 전용이면 이전 위치에 로그 파일이 만들어집니다.
[!참고]
데이터베이스 스냅숏은 분리하거나 연결할 수 없습니다.
복제 데이터베이스에는 이 프로시저를 사용하지 마십시오.
사용 권한
데이터베이스 연결 시 권한 처리 방법에 대한 자세한 내용은 CREATE DATABASE(Transact-SQL)를 참조하십시오.
예
다음 예에서는 AdventureWorks2012 를 분리한 다음 AdventureWorks2012 의 파일 하나를 현재 서버에 연결합니다.
USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2012';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2012',
@physname =
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';