sp_attach_single_file_db (Transact-SQL)
Присоединяет базу данных, которая имеет только один файл данных, к текущему серверу. Процедура sp_attach_single_file_db не может использоваться при наличии нескольких файлов данных.
Важно! |
---|
В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого рекомендуется использовать инструкцию CREATE DATABASE database_name FOR ATTACH.Дополнительные сведения см. в разделе CREATE DATABASE (SQL Server Transact-SQL).Не используйте эту процедуру на реплицированной базе данных. |
Примечание по безопасности |
---|
Рекомендуется не присоединять и не восстанавливать базы данных, полученные из неизвестных или ненадежных источников.В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных.Перед началом работы с базой данных, полученной из ненадежного источника, выполните для нее на тестовом сервере инструкцию DBCC CHECKDB, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код. |
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Cинтаксические обозначения в Transact-SQL
Синтаксис
sp_attach_single_file_db [ @dbname= ] 'dbname'
, [ @physname= ] 'physical_name'
Аргументы
[ @dbname= ] 'dbname'
Имя базы данных, присоединяемой к серверу. Имя должно быть уникальным. Аргумент dbname имеет тип sysname и значение по умолчанию NULL.[ @physname= ] 'physical_name'
Это физическое имя файла базы данных, содержащее путь к каталогу. Аргумент physical_name имеет тип nvarchar(260) и значение по умолчанию NULL.Примечание
Этот аргумент сопоставляется с параметром FILENAME инструкции CREATE DATABASE.Дополнительные сведения см. в разделе CREATE DATABASE (SQL Server Transact-SQL).
Поэтому при присоединении базы данных SQL Server 2005, содержащей файлы полнотекстовых каталогов, к экземпляру сервера SQL Server 2014 файлы каталога присоединяются из предыдущего местоположения вместе с другими файлами базы данных, так же как и в SQL Server 2005. Дополнительные сведения см. в разделе Обновление полнотекстового поиска.
Значения кода возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Результирующие наборы
Отсутствует
Замечания
Используйте процедуру sp_attach_single_file_db только на базах данных, которые были предварительно отсоединены от сервера с помощью операции sp_detach_db или на скопированных базах данных.
Процедура sp_attach_single_file_db работает только на базах данных, которые имеют один файл журнала. Когда процедура sp_attach_single_file_db прикрепляет базу данных к серверу, операция создает новый файл журнала. Если база данных находится в режиме «только для чтения», файл журнала будет создан в ее предыдущем местоположении.
Примечание
Невозможно отсоединить или присоединить моментальный снимок базы данных.
Не используйте эту процедуру на реплицированной базе данных.
Разрешения
Дополнительные сведения о том, как будут обработаны разрешения при присоединении базы данных, см. в разделе CREATE DATABASE (SQL Server 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\MSSQL12.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';
См. также
Справочник
Системные хранимые процедуры (Transact-SQL)