sp_create_removable (Transact-SQL)
Aplica-se: SQL Server
Cria um banco de dados de mídia removível. Cria três ou mais arquivos (um para as tabelas de catálogo de sistema, um para o log de transações e um ou mais para as tabelas de dados) e coloca o banco de dados nesses arquivos.
Importante
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Recomendamos que você use CREATE DATABASE em vez disso.
Convenções de sintaxe de Transact-SQL
Sintaxe
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 ]
[ ; ]
Argumentos
@dbname [ = ] N'dbname'
O nome do banco de dados a ser criado para uso em mídia removível. @dbname é sysname, com um padrão de NULL
.
@syslogical [ = ] N'sisológico'
O nome lógico do arquivo que contém as tabelas de catálogo do sistema. @syslogical é sysname, com um padrão de NULL
.
@sysphysical [ = ] N'sysphysical'
O nome físico. @sysphysical é nvarchar(260), com um padrão de NULL
. Esse valor inclui um caminho totalmente qualificado do arquivo que contém as tabelas de catálogo do sistema.
@syssize [ = ] tamanho do sistema
O tamanho, em megabytes, do arquivo que contém as tabelas do catálogo do sistema. @syssize é int, com um padrão de NULL
.
@loglogical [ = ] N'loglógico'
O nome lógico do arquivo que contém o log de transações. @loglogical é sysname, com um padrão de NULL
.
@logphysical [ = ] N'logphysical'
O nome físico. @logphysical é nvarchar(260), com um padrão de NULL
. Esse valor inclui um caminho totalmente qualificado do arquivo que contém o log de transações.
@logsize [ = ] tamanho do log
O tamanho, em megabytes, do arquivo que contém o log de transações. @logsize é int, com um valor mínimo de 1
.
@datalogical1 [ = ] N'datalogical1'
O nome lógico de um arquivo que contém as tabelas de dados. @datalogical1 é sysname, com um padrão de NULL
.
Deve haver arquivos de dados entre 1
e 16
. Normalmente, mais de um arquivo de dados é criado quando se espera que o banco de dados seja grande e deve ser distribuído em vários discos.
@dataphysical1 [ = ] N'dataphysical1'
O nome físico. @dataphysical1 é nvarchar(260), com um padrão de NULL
. Esse valor inclui um caminho totalmente qualificado de um arquivo que contém tabelas de dados.
@datasize1 [ = ] datasize1
O tamanho, em megabytes, de um arquivo que contém tabelas de dados. @datasize1 é int, com um valor mínimo de 1
.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nenhum.
Comentários
Se você quiser fazer uma cópia de seu banco de dados em mídia removível, como um CD, e distribuir o banco de dados a outros usuários, use este procedimento armazenado.
Permissões
Requer permissão CREATE DATABASE
, CREATE ANY DATABASE
ou ALTER ANY DATABASE
.
Para manter controle sobre o uso do disco em uma instância do SQL Server, a permissão para criar bancos de dados geralmente é limitada a algumas contas de logon.
Permissões em arquivos de dados e log
Sempre que determinadas operações são executadas em um banco de dados, as permissões correspondentes são definidas nos respectivos arquivos de dados e de log. As permissões impedem que os arquivos sejam adulterados acidentalmente se residirem em um diretório com permissões abertas.
Operação no banco de dados | Permissões definidas em arquivos |
---|---|
Modificado para adicionar um novo arquivo | Criado |
Backup de | Anexado |
Restaurado | Desanexado |
Observação
O SQL Server não define permissões de dados e arquivos de log.
Exemplos
O exemplo a seguir cria o banco de dados inventory
como um banco de dados removível.
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;