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';