sp_create_removable (Transact-SQL)

Создает базу данных съемных носителей. Создает три или более файлов (один для таблиц системных каталогов, один для журнала транзакций, а также один или более для таблиц данных) и размещает в них базу данных.

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Рекомендуется использовать инструкцию CREATE DATABASE.

Значок ссылки на разделСоглашение о синтаксисе Transact-SQL

Синтаксис

sp_create_removable 
   [ @dbname = ] 'dbname', 
   [ @syslogical= ] 'syslogical', 
   [ @sysphysical = ] 'sysphysical', 
   [ @syssize = ] syssize, 
   [ @loglogical = ] 'loglogical', 
   [ @logphysical = ] 'logphysical', 
   [ @logsize = ] logsize, 
   [ @datalogical1 = ] 'datalogical1', 
   [ @dataphysical1 = ] 'dataphysical1', 
   [ @datasize1 = ] datasize1 , 
   [ @datalogical16 = ] 'datalogical16', 
   [ @dataphysical16 = ] 'dataphysical16', 
   [ @datasize16 = ] datasize16 ]

Аргументы

  • [ @dbname= ] 'dbname'
    Имя базы данных, создаваемой для использования на съемных носителях. Аргумент dbname имеет тип sysname.

  • [ @syslogical= ] 'syslogical'
    Логическое имя файла, содержащего таблицы системных каталогов. Аргумент syslogical имеет тип sysname.

  • [ @sysphysical= ] 'sysphysical'
    Физическое имя. Включает в себя полный путь к файлу, содержащему таблицы системных каталогов. Аргумент sysphysical имеет тип nvarchar(260).

  • [ @syssize= ] syssize
    Размер файла, содержащего таблицы системных каталогов (в мегабайтах). Аргумент syssize имеет тип int. Минимальным значением аргумента syssize является 1.

  • [ @loglogical= ] 'loglogical'
    Логическое имя файла, содержащего журнал транзакций. Аргумент loglogical имеет тип sysname.

  • [ @logphysical= ] 'logphysical'
    Физическое имя. Включает в себя полный путь к файлу, содержащему журнал транзакций. Аргумент logphysical имеет тип nvarchar(260).

  • [ @logsize= ] logsize
    Размер файла, содержащего журнал транзакций (в мегабайтах). Аргумент logsize имеет тип int. Минимальным значением аргумента logsize является 1.

  • [ @datalogical1= ] 'datalogical'
    Логическое имя файла, содержащего таблицы данных. Аргумент datalogical имеет тип sysname.

    Можно создать от 1 до 16 файлов данных. Обычно создание более одного файла данных требуется для больших баз данных, распространяемых на нескольких дисках.

  • [ @dataphysical1= ] 'dataphysical'
    Физическое имя. Включает в себя полный путь к файлу, содержащему таблицы данных. Аргумент dataphysical имеет тип nvarchar(260).

  • [ @datasize1= ] 'datasize'
    Размер файла, содержащего таблицы данных (в мегабайтах). Аргумент datasize имеет тип int. Минимальным значением аргумента datasize является 1.

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

0(успешное завершение) или 1 (неуспешное завершение)

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

Нет

Замечания

Используйте данную хранимую процедуру для создания копий баз данных на таких съемных носителях как компакт-диски, и распространения их среди других пользователей.

Разрешения

Необходимо разрешение CREATE DATABASE, CREATE ANY DATABASE или ALTER ANY DATABASE.

В целях сохранения контроля над использованием диска в экземпляре SQL Server разрешение на создание баз данных обычно предоставляется небольшому числу учетных записей входа.

Разрешения на файлы данных и журналов

В SQL Server 2005 для файлов данных и журналов каждой базы данных заданы некоторые разрешения. Следующие разрешения задаются при применении следующих операций к базе данных:

Создание

Изменение для добавления нового файла

Присоединение

Создание резервной копии

Отсоединение

Восстановление

Эти разрешения предотвращают случайное повреждение файлов, хранящихся в каталоге с открытыми разрешениями. Дополнительные сведения см. в разделе Защита данных и файлов журналов.

Примеры

В ходе выполнения следующего примера создается удаляемая база данных inventory.

EXEC sp_create_removable 'inventory', 
   'invsys',
   'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\invsys.mdf'
, 2, 
   'invlog',
   'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\invlog.ldf', 4,
   'invdata',
   'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\invdata.ndf', 
10