Partilhar via


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;