Поделиться через


sp_create_removable (Transact-SQL)

Область применения: SQL Server

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

Внимание

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @dbname = ] N'dbname'

Имя базы данных, создаваемой для использования на съемных носителях. @dbname — sysname с значением по умолчаниюNULL.

[ @syslogical = ] N'syslogical'

Логическое имя файла, содержащего таблицы системного каталога. @syslogical — sysname с значением по умолчаниюNULL.

[ @sysphysical = ] N'sysphysical'

Физическое имя. @sysphysical — nvarchar(260) с значением по умолчаниюNULL. Это значение включает полный путь к файлу, в котором хранятся таблицы системного каталога.

[ @syssize = ] syssize

Размер файла в мегабайтах, в котором хранятся таблицы системного каталога. @syssize имеет значение int с значением по умолчаниюNULL.

[ @loglogical = ] N'loglogical'

Логическое имя файла, содержащего журнал транзакций. @loglogical имеет имя sysname с значением по умолчаниюNULL.

[ @logphysical = ] N'logphysical'

Физическое имя. @logphysical — nvarchar(260) с значением по умолчаниюNULL. Это значение включает полный путь к файлу, который содержит журнал транзакций.

[ @logsize = ] logsize

Размер файла в мегабайтах, содержащего журнал транзакций. @logsize имеет значение int с минимальным значением1.

[ @datalogical1 = ] N'datalogical1'

Логическое имя файла, содержащего таблицы данных. @datalogical1 — sysname с значением по умолчаниюNULL.

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

[ @dataphysical1 = ] N'dataphysical1'

Физическое имя. @dataphysical1 — nvarchar(260) с значением по умолчаниюNULL. Это значение включает полный путь к файлу, который содержит таблицы данных.

[ @datasize1 = ] datasize1

Размер файла в мегабайтах, содержащего таблицы данных. @datasize1 имеет значение int с минимальным значением1.

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

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

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

Нет.

Замечания

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

Разрешения

Требуется разрешение CREATE DATABASE, CREATE ANY DATABASE или ALTER ANY DATABASE.

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

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

При выполнении определенных операций в базе данных задаются соответствующие разрешения на ее файлы данных и журнала. Разрешения предотвращают случайное изменение файлов, если они находятся в открытом каталоге.

Операция с базой данных Разрешения, заданные для файлов
Изменено, чтобы добавить новый файл Создание
Объекты резервного копирования Вложен
Восстановленный Отсоединен

Примечание.

SQL Server не задает разрешения на данные и файлы журнала.

Примеры

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

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