sp_attach_single_file_db (Transact-SQL)

Применимо к:SQL Server

Присоединяет базу данных, которая является только одним файлом данных на текущем сервере. sp_attach_single_file_db нельзя использовать с несколькими файлами данных.

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого рекомендуется использовать CREATE DATABASE <database_name> FOR ATTACH . Дополнительные сведения см. в статье CREATE DATABASE (SQL Server Transact-SQL). Не используйте эту процедуру в реплика базе данных.

Не присоединяйте или не восстанавливайте базы данных из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций 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 Transact-SQL).

Примечание.

При присоединении базы данных SQL Server 2005 (9.x), содержащей файлы полнотекстового каталога в более новом экземпляре SQL Server, файлы каталога присоединяются из предыдущего расположения вместе с другими файлами базы данных, так же, как и в SQL Server 2005 (9.x). Дополнительные сведения см. в разделе Обновление полнотекстового поиска.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Нет.

Замечания

Используйте sp_attach_single_file_db только базы данных, которые ранее были отключены от сервера с помощью явной sp_detach_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';