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;