Partilhar via


CRIAR BASE DE DADOS

Cria um novo banco de dados.

Selecione uma das guias a seguir para a sintaxe, argumentos, observações, permissões e exemplos para uma versão SQL específica com a qual você está trabalhando.

Selecione um produto

Na linha seguinte, selecione o nome do produto em que está interessado e apenas as informações desse produto são apresentadas.

* SQL Server *  

de instância gerenciada SQL

Plataforma de análise
Sistema (PDW)

 

Servidor SQL

Visão geral

No SQL Server, essa instrução cria um novo banco de dados e os arquivos usados e seus grupos de arquivos. Ele também pode ser usado para criar um instantâneo de banco de dados ou anexar arquivos de banco de dados para criar um banco de dados a partir dos arquivos desanexados de outro banco de dados.

Sintaxe

Crie um banco de dados.

Para obter mais informações sobre as convenções de sintaxe, consulte Transact-SQL convenções de sintaxe.

CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
      [ PRIMARY ] <filespec> [ ,...n ]
      [ , <filegroup> [ ,...n ] ]
      [ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]

<option> ::=
{
      FILESTREAM ( <filestream_option> [,...n ] )
    | DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
    | DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
    | NESTED_TRIGGERS = { OFF | ON }
    | TRANSFORM_NOISE_WORDS = { OFF | ON }
    | TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
    | DB_CHAINING { OFF | ON }
    | TRUSTWORTHY { OFF | ON }
    | PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='path-to-directory-on-a-DAX-volume' )
    | LEDGER = {ON | OFF }
}

<filestream_option> ::=
{
      NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
    | DIRECTORY_NAME = 'directory_name'
}

<filespec> ::=
{
(
    NAME = logical_file_name ,
    FILENAME = { 'os_file_name' | 'filestream_path' }
    [ , SIZE = size [ KB | MB | GB | TB ] ]
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
)
}

<filegroup> ::=
{
FILEGROUP filegroup name [ [ CONTAINS FILESTREAM ] [ DEFAULT ] | CONTAINS MEMORY_OPTIMIZED_DATA ]
    <filespec> [ ,...n ]
}

Anexar uma base de dados

CREATE DATABASE database_name
    ON <filespec> [ ,...n ]
    FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
        | ATTACH_REBUILD_LOG }
[;]

<attach_database_option> ::=
{
      <service_broker_option>
    | RESTRICTED_USER
    | FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
}

Criar um instantâneo do banco de dados

CREATE DATABASE database_snapshot_name
    ON
    (
        NAME = logical_file_name,
        FILENAME = 'os_file_name'
    ) [ ,...n ]
    AS SNAPSHOT OF
[;]

Argumentos

database_name

Este é o nome do novo banco de dados. Os nomes de banco de dados devem ser exclusivos em uma instância do SQL Server e estar em conformidade com as regras para identificadores de .

database_name pode ter no máximo 128 caracteres, a menos que um nome lógico não seja especificado para o arquivo de log. Se um nome de arquivo de log lógico não for especificado, o SQL Server gerará o logical_file_name e o os_file_name para o log anexando um sufixo a database_name. Isso limita database_name a 123 caracteres para que o nome do arquivo lógico gerado não tenha mais de 128 caracteres.

Se o nome do arquivo de dados não for especificado, o SQL Server usará database_name como o logical_file_name e como o os_file_name. O caminho padrão é obtido do registro. O caminho padrão pode ser alterado no Propriedades do Servidor (Página Configurações do Banco de Dados) no Management Studio. Alterar o caminho padrão requer reiniciar o SQL Server.

CONTENÇÃO = { NENHUM | PARCIAL }

Aplica-se a: SQL Server 2012 (11.x) e posterior

Especifica o status de contenção do banco de dados. NONE = banco de dados não contido. PARCIAL = base de dados parcialmente contida.

EM

Especifica que os arquivos de disco usados para armazenar as seções de dados do banco de dados, arquivos de dados, são explicitamente definidos. ON é necessário quando seguido por uma lista separada por vírgulas de <filespec> itens que definem os arquivos de dados para o grupo de arquivos primário. A lista de arquivos no grupo de arquivos primário pode ser seguida por uma lista opcional, separada por vírgula, de <grupo de arquivos> itens que definem grupos de arquivos de usuário e seus arquivos.

PRIMÁRIO

Especifica que a lista de< filespec >associada define o arquivo primário. O primeiro arquivo especificado na entrada <filespec> no grupo de arquivos primário torna-se o arquivo primário. Um banco de dados pode ter apenas um arquivo primário. Para obter mais informações, consulte arquivos de banco de dados e grupos de arquivos.

Se PRIMARY não for especificado, o primeiro arquivo listado na instrução CREATE DATABASE se tornará o arquivo primário.

INICIAR SESSÃO

Especifica que os arquivos de disco usados para armazenar o log do banco de dados, os arquivos de log, são explicitamente definidos. LOG ON é seguido por uma lista separada por vírgulas de <filespec> itens que definem os arquivos de log. Se LOG ON não for especificado, um arquivo de log será criado automaticamente, que terá um tamanho que é 25% da soma dos tamanhos de todos os arquivos de dados para o banco de dados, ou 512 KB, o que for maior. Esse arquivo é colocado no local padrão do arquivo de log. Para obter informações sobre esse local, consulte Exibir ou alterar os locais padrão para arquivos de dados e log no SSMS.

LOG ON não pode ser especificado em um instantâneo do banco de dados.

COLLATE collation_name

Especifica o agrupamento padrão para o banco de dados. O nome do agrupamento pode ser um nome de agrupamento do Windows ou um nome de agrupamento SQL. Se não for especificado, o banco de dados receberá o agrupamento padrão da instância do SQL Server. Um nome de agrupamento não pode ser especificado em um instantâneo de banco de dados.

Um nome de agrupamento não pode ser especificado com as cláusulas FOR ATTACH ou FOR ATTACH_REBUILD_LOG. Para obter informações sobre como alterar o agrupamento de um banco de dados anexado, visite este site da Microsoft.

Para obter mais informações sobre os nomes de agrupamento Windows e SQL, consulte COLLATE.

Observação

Os bancos de dados contidos são agrupados de forma diferente dos bancos de dados não contidos. Para obter mais informações, consulte agrupamentos de banco de dados contidos.

COM <opção>

<filestream_option>

NON_TRANSACTED_ACCESS = { DESLIGADO | READ_ONLY | COMPLETO }

Aplica-se a: SQL Server 2012 (11.x) e posterior.

Especifica o nível de acesso FILESTREAM não transacional ao banco de dados.

Valor Descrição
OFF O acesso não transacional está desativado.
READONLY Os dados FILESTREAM neste banco de dados podem ser lidos por processos não transacionais.
FULL O acesso não transacional completo a FileTables FILESTREAM está habilitado.

DIRECTORY_NAME = <directory_name>

Aplica-se a: SQL Server 2012 (11.x) e posterior

Um nome de diretório compatível com o Windows. Esse nome deve ser exclusivo entre todos os nomes de Database_Directory na instância do SQL Server. A comparação de exclusividade não diferencia maiúsculas de minúsculas, independentemente das configurações de agrupamento do SQL Server. Esta opção deve ser definida antes de criar uma FileTable neste banco de dados.



As opções a seguir são permitidas somente quando CONTENÇÃO tiver sido definido como PARCIAL. Se CONTENÇÃO estiver definido como NONE, ocorrerão erros.

DEFAULT_FULLTEXT_LANGUAGE = <> LCID | <nome da língua> | <idioma alias>

Aplica-se a: SQL Server 2012 (11.x) e posterior

Consulte Configurar a opção de configuração do servidor de idioma de texto completo padrão para obter uma descrição completa dessa opção.

DEFAULT_LANGUAGE = <> LCID | <nome da língua> | <idioma alias>

Aplica-se a: SQL Server 2012 (11.x) e posterior

Consulte Configurar a opção de configuração do servidor no idioma padrão para obter uma descrição completa dessa opção.

NESTED_TRIGGERS = { DESLIGADO | EM }

Aplica-se a: SQL Server 2012 (11.x) e posterior

Consulte Configurar a opção de configuração do servidor de gatilhos aninhados para obter uma descrição completa dessa opção.

TRANSFORM_NOISE_WORDS = { DESLIGADO | EM }

Aplica-se a: SQL Server 2012 (11.x) e posterior

Consulte transformar palavras de ruído Opção de configuração do servidor para obter uma descrição completa dessa opção.

TWO_DIGIT_YEAR_CUTOFF = { 2049 | <qualquer ano entre 1753 e 9999> }

Quatro dígitos representando um ano. 2049 é o valor padrão. Consulte Configurar a opção de configuração do servidor de corte de dois dígitos para obter uma descrição completa dessa opção.

DB_CHAINING { DESLIGADO | EM }

Quando ON é especificado, o banco de dados pode ser a origem ou o destino de uma cadeia de propriedade entre bancos de dados.

Quando OFF, o banco de dados não pode participar do encadeamento de propriedade entre bancos de dados. O padrão é OFF.

Importante

A instância do SQL Server reconhecerá essa configuração quando a opção de servidor de encadeamento de propriedade cross db for 0 (OFF). Quando o encadeamento de propriedade entre bancos de dados é 1 (ON), todos os bancos de dados de usuários podem participar de cadeias de propriedade entre bancos de dados, independentemente do valor dessa opção. Esta opção é definida usando sp_configure.

Para definir essa opção, requer associação à função de servidor fixa sysadmin. A opção DB_CHAINING não pode ser definida nestes bancos de dados do sistema: master, model, tempdb.

CONFIÁVEL { OFF | EM }

Quando ON é especificado, os módulos de banco de dados (por exemplo, modos de exibição, funções definidas pelo usuário ou procedimentos armazenados) que usam um contexto de representação podem acessar recursos fora do banco de dados.

Quando OFF, os módulos de banco de dados em um contexto de representação não podem acessar recursos fora do banco de dados. O padrão é OFF.

TRUSTWORTHY é definido como OFF sempre que o banco de dados é anexado.

Por padrão, todos os bancos de dados do sistema, exceto o banco de dados msdb, têm TRUSTWORTHY definido como OFF. O valor não pode ser alterado para os bancos de dados model e tempdb. Recomendamos que você nunca defina a opção TRUSTWORTHY como ON para o banco de dados master.

PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='' )

Aplica-se a: SQL Server 2017 (14.x) e posterior.

Quando essa opção é especificada, o buffer de log de transações é criado em um volume localizado em um dispositivo de disco apoiado por memória de classe de armazenamento (NVDIMM-N armazenamento não volátil), também conhecido como buffer de log persistente. Para obter mais informações, consulte aceleração de latência de confirmação de transação usando de memória de classe de armazenamento e Adicionar buffer de log persistente a um banco de dados.

LEDGER = {LIGADO | DESLIGADO }

Quando definido como ON, ele cria um banco de dados contábil, no qual a integridade de todos os dados do usuário é protegida. Somente tabelas contábeis podem ser criadas em um banco de dados contábil. O padrão é OFF. O valor da opção LEDGER não pode ser alterado depois que o banco de dados é criado. Para obter mais informações, consulte Configurar um banco de dados contábil.

CRIAR BASE DE DADOS ... PARA ANEXAR [ COM < attach_database_option > ]

Especifica que o banco de dados é criado por anexação um conjunto existente de arquivos do sistema operacional. Deve haver uma entrada< filespec >que especifique o arquivo primário. As únicas outras entradas de< filespec >necessárias são aquelas para quaisquer arquivos que tenham um caminho diferente de quando o banco de dados foi criado pela primeira vez ou anexado pela última vez. Uma entrada <filespec> deve ser especificada para esses arquivos.

FOR ATTACH requer o seguinte:

  • Todos os ficheiros de dados (MDF e NDF) devem estar disponíveis.
  • Se existirem vários arquivos de log, todos eles deverão estar disponíveis.

Se um banco de dados de leitura/gravação tiver um único arquivo de log que não está disponível no momento, e se o banco de dados foi desligado sem usuários ou transações abertas antes da operação ATTACH, o FOR ATTACH recria automaticamente o arquivo de log e atualiza o arquivo primário. Por outro lado, para um banco de dados somente leitura, o log não pode ser reconstruído porque o arquivo primário não pode ser atualizado. Portanto, quando você anexa um banco de dados somente leitura com um log que não está disponível, você deve fornecer os arquivos de log ou os arquivos na cláusula FOR ATTACH .

Observação

Um banco de dados criado por uma versão mais recente do SQL Server não pode ser anexado em versões anteriores.

No SQL Server, todos os arquivos de texto completo que fazem parte do banco de dados que está sendo anexado serão anexados ao banco de dados. Para especificar um novo caminho do catálogo de texto completo, especifique o novo local sem o nome de arquivo do sistema operacional de texto completo. Para obter mais informações, consulte a seção Exemplos.

Anexar um banco de dados que contém uma opção FILESTREAM de "Nome do diretório" em uma instância do SQL Server solicitará que o SQL Server verifique se o nome do Database_Directory é exclusivo. Se não estiver, a operação ATTACH falha com o erro, FILESTREAM Database_Directory name is not unique in this SQL Server instance. Para evitar esse erro, o parâmetro opcional, directory_name, deve ser passado para esta operação.

FOR ATTACH não pode ser especificado em um instantâneo de banco de dados.

FOR ATTACH pode especificar a opção RESTRICTED_USER. RESTRICTED_USER permite que apenas membros da função de banco de dados fixa db_owner e funções de servidor fixas dbcreator e sysadmin se conectem ao banco de dados, mas não limita seu número. As tentativas de utilizadores não qualificados são recusadas.

<service_broker_option>

Se o banco de dados usar o Service Broker, use a <service_broker_option> WITH na cláusula FOR ATTACH :

Controla a entrega de mensagens do Service Broker e o identificador do Service Broker para o banco de dados. As opções do Service Broker só podem ser especificadas quando a cláusula FOR ATTACH é usada.

ENABLE_BROKER

Especifica que o Service Broker está habilitado para o banco de dados especificado. Ou seja, a entrega de mensagens é iniciada e is_broker_enabled é definida como true na exibição de catálogo sys.databases. O banco de dados mantém o identificador existente do Service Broker.

NEW_BROKER

Cria um novo valor de service_broker_guid no sys.databases e no banco de dados restaurado. Termina todos os pontos finais de conversação com limpeza. O broker está habilitado, mas nenhuma mensagem é enviada para os pontos de extremidade de conversa remotos. Qualquer rota que faça referência ao identificador antigo do Service Broker deve ser recriada com o novo identificador.

ERROR_BROKER_CONVERSATIONS

Termina todas as conversas com um erro informando que o banco de dados está anexado ou restaurado. O broker é desativado até que esta operação seja concluída e, em seguida, habilitada. O banco de dados mantém o identificador existente do Service Broker.

Ao anexar um banco de dados replicado que foi copiado em vez de ser desanexado, considere:

  • Se você anexar o banco de dados à mesma instância e versão do servidor que o banco de dados original, nenhuma etapa adicional será necessária.
  • Se você anexar o banco de dados à mesma instância do servidor, mas com uma versão atualizada, deverá executar sp_vupgrade_replication para atualizar a replicação após a conclusão da operação de anexação.
  • Se você anexar o banco de dados a uma instância de servidor diferente, independentemente da versão, deverá executar sp_removedbreplication para remover a replicação após a conclusão da operação de anexação.

Observação

Anexar funciona com o formato de armazenamento vardecimal , mas o Mecanismo de Banco de Dados do SQL Server deve ser atualizado para pelo menos o SQL Server 2005 (9.x) SP2. Não é possível anexar um banco de dados usando o formato de armazenamento vardecimal a uma versão anterior do SQL Server. Para obter mais informações sobre o formato de armazenamento vardecimal , consulte Data Compression.

Quando um banco de dados é anexado ou restaurado pela primeira vez em uma nova instância do SQL Server, uma cópia da chave mestra do banco de dados (criptografada pela chave mestra de serviço) ainda não é armazenada no servidor. Você deve usar a instrução OPEN MASTER KEY para descriptografar a chave mestra do banco de dados (DMK). Uma vez que o DMK tenha sido descriptografado, você tem a opção de habilitar a descriptografia automática no futuro usando a instrução ALTER MASTER KEY REGENERATE para provisionar o servidor com uma cópia do DMK, criptografada com a chave mestra de serviço (SMK). Quando um banco de dados foi atualizado de uma versão anterior, o DMK deve ser regenerado para usar o algoritmo AES mais recente. Para obter mais informações sobre como regenerar o DMK, consulte ALTER MASTER KEY. O tempo necessário para regenerar a chave DMK para atualizar para AES depende do número de objetos protegidos pelo DMK. Regenerar a chave DMK para atualizar para AES só é necessário uma vez e não tem efeito sobre futuras regenerações como parte de uma estratégia de rotação de chaves. Para obter informações sobre como atualizar um banco de dados usando anexar, consulte Atualizar um banco de dados usando desanexar e anexar.

Importante

Recomendamos que você não anexe bancos de dados de fontes desconhecidas ou não confiáveis. Esses bancos de dados podem conter código mal-intencionado que pode executar código Transact-SQL não intencional ou causar erros modificando o esquema ou a estrutura física do banco de dados. Antes de usar um banco de dados de uma fonte desconhecida ou não confiável, execute DBCC CHECKDB no banco de dados em um servidor que não seja de produção e também examine o código, como procedimentos armazenados ou outro código definido pelo usuário, no banco de dados.

Observação

As opções e DB_CHAINING CONFIÁVEIS não têm efeito ao anexar um banco de dados.

PARA ATTACH_REBUILD_LOG

Especifica que o banco de dados é criado anexando um conjunto existente de arquivos do sistema operacional. Esta opção é limitada a bancos de dados de leitura/gravação. Deve haver uma entrada filespec especificando o arquivo primário. Se um ou mais arquivos de log de transações estiverem faltando, o arquivo de log será reconstruído. O ATTACH_REBUILD_LOG cria automaticamente um novo arquivo de log de 1 MB. Esse arquivo é colocado no local padrão do arquivo de log. Para obter informações sobre esse local, consulte Exibir ou alterar os locais padrão para arquivos de dados e log no SSMS.

Observação

Se os arquivos de log estiverem disponíveis, o Mecanismo de Banco de Dados usará esses arquivos em vez de reconstruir os arquivos de log.

FOR ATTACH_REBUILD_LOG requer as seguintes condições:

  • Um desligamento limpo do banco de dados.
  • Todos os ficheiros de dados (MDF e NDF) devem estar disponíveis.

Importante

Esta operação quebra a cadeia de backup de log. Recomendamos que um backup completo do banco de dados seja executado após a conclusão da operação. Para obter mais informações, consulte BACKUP.

Normalmente, FOR ATTACH_REBUILD_LOG é usado quando você copia um banco de dados de leitura/gravação com um log grande para outro servidor onde a cópia será usada principalmente, ou apenas, para operações de leitura e, portanto, requer menos espaço de log do que o banco de dados original.

FOR ATTACH_REBUILD_LOG não pode ser especificado em um instantâneo de banco de dados.

Para obter mais informações sobre como anexar e desanexar bancos de dados, consulte Database Detach and Attach.

<filespec>

Controla as propriedades do arquivo.

NOME logical_file_name

Especifica o nome lógico do arquivo. NAME é necessário quando FILENAME é especificado, exceto quando se especifica uma das cláusulas FOR ATTACH . Um grupo de arquivos FILESTREAM não pode ser nomeado PRIMÁRIO.

logical_file_name

É o nome lógico usado no SQL Server ao fazer referência ao arquivo. Logical_file_name devem ser exclusivos no banco de dados e estar em conformidade com as regras para identificadores. O nome pode ser um caractere ou constante Unicode, ou um identificador regular ou delimitado.

NOME DO FICHEIRO { 'os_file_name' | 'filestream_path' }

Especifica o nome do arquivo (físico) do sistema operacional.

'os_file_name'

É o caminho e o nome do arquivo usados pelo sistema operacional quando você cria o arquivo. O arquivo deve residir em um dos seguintes dispositivos: o servidor local no qual o SQL Server está instalado, uma rede de área de armazenamento [SAN] ou uma rede baseada em iSCSI. O caminho especificado deve existir antes de executar a instrução CREATE DATABASE. Para obter mais informações, consulte arquivos de banco de dados e grupos de arquivos mais adiante neste artigo.

Os parâmetros SIZE, MAXSIZE e FILEGROWTH podem ser definidos quando um caminho UNC é especificado para o arquivo.

Se o arquivo estiver em uma partição bruta, os_file_name deverá especificar apenas a letra da unidade de uma partição bruta existente. Apenas um arquivo de dados pode ser criado em cada partição bruta.

Observação

Não há suporte para partições brutas no SQL Server 2014 e versões posteriores.

Os arquivos de dados não devem ser colocados em sistemas de arquivos compactados, a menos que os arquivos sejam arquivos secundários somente leitura ou que o banco de dados seja somente leitura. Os arquivos de log nunca devem ser colocados em sistemas de arquivos compactados.

'filestream_path'

Para um grupo de arquivos FILESTREAM, FILENAME refere-se a um caminho onde os dados FILESTREAM serão armazenados. O caminho até a última pasta deve existir e a última pasta não deve existir. Por exemplo, se você especificar o caminho C:\MyFiles\MyFilestreamData, C:\MyFiles deverá existir antes de executar ALTER DATABASE, mas a pasta MyFilestreamData não deverá existir.

O grupo de arquivos e o arquivo (<filespec>) devem ser criados na mesma instrução.

As propriedades SIZE e FILEGROWTH não se aplicam a um grupo de arquivos FILESTREAM.

TAMANHO tamanho

Especifica o tamanho do arquivo.

SIZE não pode ser especificado quando o os_file_name é especificado como um caminho UNC. SIZE não se aplica a um grupo de arquivos FILESTREAM.

tamanho

É o tamanho inicial do arquivo.

Quando tamanho não é fornecido para o arquivo primário, o Mecanismo de Banco de Dados usa o tamanho do arquivo primário no banco de dados model. O tamanho padrão do banco de dados model é 8 MB (começando com o SQL Server 2016 (13.x)) ou 1 MB (para versões anteriores). Quando um arquivo de dados secundário ou um arquivo de log é especificado, mas tamanho não é especificado para o arquivo, o Mecanismo de Banco de Dados torna o arquivo de 8 MB (começando com o SQL Server 2016 (13.x)) ou 1 MB (para versões anteriores). O tamanho especificado para o arquivo primário deve ser pelo menos tão grande quanto o arquivo primário do banco de dados model.

Os sufixos kilobyte (KB), megabyte (MB), gigabyte (GB) ou terabyte (TB) podem ser usados. O padrão é MB. Especifique um número inteiro. Não inclua um decimal. Tamanho é um valor inteiro. Para valores superiores a 2147483647, utilize unidades maiores.

MAXSIZE max_size

Especifica o tamanho máximo para o qual o arquivo pode crescer. MAXSIZE não pode ser especificado quando o os_file_name é especificado como um caminho UNC.

max_size

É o tamanho máximo do arquivo. Os sufixos KB, MB, GB e TB podem ser usados. O padrão é MB. Especifique um número inteiro. Não inclua um decimal. Se max_size não for especificado, o arquivo crescerá até que o disco esteja cheio. Max_size é um valor inteiro. Para valores superiores a 2147483647, utilize unidades maiores.

ILIMITADO

Especifica que o arquivo cresce até que o disco esteja cheio. No SQL Server, um arquivo de log especificado com crescimento ilimitado tem um tamanho máximo de 2 TB e um arquivo de dados tem um tamanho máximo de 16 TB.

Observação

Não há tamanho máximo quando essa opção é especificada para um contêiner FILESTREAM. Ele continua a crescer até que o disco esteja cheio.

FILEGROWTH growth_increment

Especifica o incremento de crescimento automático do arquivo. A configuração FILEGROWTH para um arquivo não pode exceder a configuração MAXSIZE. FILEGROWTH não pode ser especificado quando o os_file_name é especificado como um caminho UNC. FILEGROWTH não se aplica a um grupo de arquivos FILESTREAM.

growth_increment

É a quantidade de espaço adicionada ao arquivo sempre que um novo espaço é necessário.

O valor pode ser especificado em MB, KB, GB, TB ou porcentagem (%). Se um número for especificado sem um sufixo MB, KB ou %, o padrão será MB. Quando % é especificado, o tamanho do incremento de crescimento é a porcentagem especificada do tamanho do arquivo no momento em que o incremento ocorre. O tamanho especificado é arredondado para os 64 KB mais próximos e o valor mínimo é 64 KB.

Um valor 0 indica que o crescimento automático está desativado e nenhum espaço adicional é permitido.

Se FILEGROWTH não for especificado, os valores padrão são:

Versão Valores padrão
Iniciando o SQL Server 2016 (13.x) Dados 64 MB. Ficheiros de registo 64 MB.
Iniciando o SQL Server 2005 (9.x) Dados 1 MB. Arquivos de log 10%.
Antes do SQL Server 2005 (9.x) Dados 10%. Arquivos de log 10%.

<grupo de arquivos>

Controla as propriedades do grupo de arquivos. O grupo de arquivos não pode ser especificado em um instantâneo de banco de dados.

filegroup_name GRUPO DE ARQUIVOS

É o nome lógico do grupo de arquivos.

filegroup_name

filegroup_name devem ser exclusivos no banco de dados e não podem ser os nomes fornecidos pelo sistema PRIMARY e PRIMARY_LOG. O nome pode ser um caractere ou constante Unicode, ou um identificador regular ou delimitado. O nome deve estar em conformidade com as regras para identificadores.

CONTÉM FILESTREAM

Especifica que o grupo de arquivos armazena BLOBs (objetos binários grandes) FILESTREAM no sistema de arquivos.

INADIMPLÊNCIA

Especifica que o grupo de arquivos nomeado é o grupo de arquivos padrão no banco de dados.

CONTÉM MEMORY_OPTIMIZED_DATA

Aplica-se a: SQL Server 2014 (12.x) e posterior

Especifica que o grupo de arquivos armazena memory_optimized dados no sistema de arquivos. Para obter mais informações, consulte Visão geral da otimização In-Memory e Cenários de uso. Apenas um MEMORY_OPTIMIZED_DATA grupo de arquivos é permitido por banco de dados. Para exemplos de código que criam um grupo de arquivos para armazenar dados com otimização de memória, consulte Criando uma tabela Memory-Optimized e um procedimento armazenado compilado nativamente.

database_snapshot_name

É o nome do novo instantâneo do banco de dados. Os nomes de instantâneo do banco de dados devem ser exclusivos em uma instância do SQL Server e estar em conformidade com as regras para identificadores. database_snapshot_name pode ter no máximo 128 caracteres.

EM ( NAME =logical_file_name, FILENAME ='os_file_name') [ ,... n ]

Para criar um instantâneo de banco de dados, especifica uma lista de arquivos no banco de dados de origem. Para que o instantâneo funcione, todos os arquivos de dados devem ser especificados individualmente. No entanto, os arquivos de log não são permitidos para instantâneos de banco de dados. Os grupos de arquivos FILESTREAM não são suportados por instantâneos de banco de dados. Se um arquivo de dados FILESTREAM for incluído em uma cláusula CREATE DATABASE ON, a instrução falhará e um erro será gerado.

Para obter descrições de NAME e FILENAME e seus valores, consulte as descrições dos valores equivalentes <filespec>.

Observação

Quando você cria um instantâneo de banco de dados, as outras opções de< filespec >e a palavra-chave PRIMARY não são permitidas.

COMO INSTANTÂNEO DE source_database_name

Especifica que o banco de dados que está sendo criado é um instantâneo do banco de dados de origem especificado por source_database_name. O instantâneo e o banco de dados de origem devem estar na mesma instância.

Antes do SQL Server 2019, o banco de dados de origem de um instantâneo de banco de dados não podia conter um grupo de arquivos MEMORY_OPTIMIZED_DATA. O suporte para instantâneos de banco de dados na memória foi adicionado no SQL Server 2019.

Para obter mais informações, consulte Database Snapshots.

Comentários

O de banco de dados mestre deve ser feito sempre que um banco de dados de usuário for criado, modificado ou descartado.

A instrução CREATE DATABASE deve ser executada no modo de confirmação automática (o modo de gerenciamento de transações padrão) e não é permitida em uma transação explícita ou implícita.

Você pode usar uma instrução CREATE DATABASE para criar um banco de dados e os arquivos que armazenam o banco de dados. O SQL Server implementa a instrução CREATE DATABASE usando as seguintes etapas:

  1. O SQL Server usa uma cópia do banco de dados modelo para inicializar o banco de dados e seus metadados.
  2. Um GUID do service broker é atribuído ao banco de dados.
  3. Em seguida, o Mecanismo de Banco de Dados preenche o restante do banco de dados com páginas vazias, exceto para páginas que têm dados internos que registram como o espaço é usado no banco de dados.

Um máximo de 32.767 bancos de dados pode ser especificado em uma instância do SQL Server.

Cada banco de dados tem um proprietário que pode executar atividades especiais no banco de dados. O proprietário é o usuário que cria o banco de dados. O proprietário do banco de dados pode ser alterado usando ALTER AUTHORIZATION.

Alguns recursos de banco de dados dependem de recursos ou capacidades presentes no sistema de arquivos para a funcionalidade completa de um banco de dados. Alguns exemplos de recursos que dependem do conjunto de recursos do sistema de arquivos incluem:

  • DBCC CHECKDB
  • FileStream
  • Backups on-line usando VSS e instantâneos de arquivos
  • Criação de instantâneos de banco de dados
  • Grupo de arquivos de dados otimizados para memória

Arquivos de banco de dados e grupos de arquivos

Cada banco de dados tem pelo menos dois arquivos, um de arquivo primário e um arquivo de log de transações e pelo menos um grupo de arquivos. Um máximo de 32.767 arquivos e 32.767 grupos de arquivos podem ser especificados para cada banco de dados.

Ao criar um banco de dados, torne os arquivos de dados o maior possível com base na quantidade máxima de dados que você espera no banco de dados.

Recomendamos que você use uma SAN (Storage Area Network, rede de armazenamento de dados), uma rede baseada em iSCSI ou um disco conectado localmente para o armazenamento de seus arquivos de banco de dados do SQL Server, pois essa configuração otimiza o desempenho e a confiabilidade do SQL Server.

Instantâneos do banco de dados

Você pode usar a instrução CREATE DATABASE para criar uma exibição estática somente leitura, um instantâneo do banco de dados do banco de dados de origem . Um instantâneo de banco de dados é transacionalmente consistente com o banco de dados de origem tal como existia no momento em que o instantâneo foi criado. Um banco de dados de origem pode ter vários instantâneos.

Observação

Quando você cria um instantâneo do banco de dados, a instrução CREATE DATABASE não pode fazer referência a arquivos de log, arquivos offline, arquivos de restauração e arquivos extintos.

Se a criação de um instantâneo de banco de dados falhar, o instantâneo se tornará suspeito e deverá ser excluído. Para obter mais informações, consulte DROP DATABASE.

Cada instantâneo persiste até ser excluído usando DROP DATABASE.

Para obter mais informações, consulte de instantâneos de banco de dados e Criar um instantâneo de banco de dados (Transact-SQL).

Opções de banco de dados

Várias opções de banco de dados são definidas automaticamente sempre que você cria um banco de dados. Para obter uma lista dessas opções, consulte ALTER DATABASE SET Options.

O banco de dados modelo e a criação de novos bancos de dados

Todos os objetos definidos pelo usuário no banco de dados modelo são copiados para todos os bancos de dados recém-criados. Você pode adicionar quaisquer objetos, como tabelas, exibições, procedimentos armazenados, tipos de dados e assim por diante, ao banco de dados model a ser incluído em todos os bancos de dados recém-criados.

Quando uma instrução CREATE DATABASE <database_name> é especificada sem parâmetros de tamanho adicionais, o arquivo de dados primário tem o mesmo tamanho que o arquivo primário no banco de dados model.

A menos que FOR ATTACH seja especificado, cada novo banco de dados herda as configurações de opção de banco de dados do banco de dados model. Por exemplo, a opção de banco de dados de redução automática é definida como true no model e em qualquer novo banco de dados que você criar. Se você alterar as opções no banco de dados model, essas novas configurações de opção serão usadas em todos os novos bancos de dados criados. A alteração de operações no banco de dados model não afeta os bancos de dados existentes. Se FOR ATTACH for especificado na instrução CREATE DATABASE, o novo banco de dados herdará as configurações de opção de banco de dados do banco de dados original.

Ver informações da base de dados

Você pode usar exibições de catálogo, funções do sistema e procedimentos armazenados do sistema para retornar informações sobre bancos de dados, arquivos e grupos de arquivos. Para obter mais informações, consulte Exibições do sistema.

Permissões

Requer permissão CREATE DATABASE, CREATE ANY DATABASEou ALTER ANY DATABASE.

Para manter o controle sobre o uso do disco em uma instância do SQL Server, a permissão para criar bancos de dados geralmente é limitada a alguns logons.

O exemplo a seguir fornece a permissão para criar um banco de dados para o usuário do banco de dados Fay.

USE master;
GO
GRANT CREATE DATABASE TO [Fay];
GO

Permissões em dados e arquivos de log

No SQL Server, determinadas permissões são definidas nos dados e arquivos de log de cada banco de dados. As seguintes permissões são definidas sempre que as seguintes operações são aplicadas a um banco de dados:

  • Em anexo
  • Cópia de segurança
  • Criado
  • Destacado
  • Modificado para adicionar um novo arquivo
  • Restaurado

As permissões impedem que os arquivos sejam acidentalmente adulterados se residirem em um diretório que tenha permissões abertas.

Observação

O Microsoft SQL Server 2005 Express edition não define permissões de dados e arquivos de log.

Exemplos

Um. Criar um banco de dados sem especificar arquivos

O exemplo a seguir cria o banco de dados mytest e cria um arquivo de log primário e de transações correspondente. Como a instrução não tem <filespec> itens, o arquivo de banco de dados primário é o tamanho do arquivo primário do banco de dados model. O log de transações é definido como o maior destes valores: 512 KB ou 25% o tamanho do arquivo de dados primário. Como MAXSIZE não é especificado, os arquivos podem crescer para preencher todo o espaço em disco disponível. Este exemplo também demonstra como descartar o banco de dados chamado mytest se ele existir, antes de criar o banco de dados mytest.

USE master;
GO
IF DB_ID (N'mytest') IS NOT NULL
DROP DATABASE mytest;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO

B. Criar um banco de dados que especifique os dados e os arquivos de log de transações

O exemplo a seguir cria o banco de dados Sales. Como a palavra-chave PRIMARY não é usada, o primeiro arquivo (Sales_dat) torna-se o arquivo primário. Como nem MB nem KB são especificados no parâmetro SIZE para o arquivo Sales_dat, ele usa MB e é alocado em megabytes. O arquivo Sales_log é alocado em megabytes porque o sufixo MB é explicitamente declarado no parâmetro SIZE.

USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

C. Criar um banco de dados especificando vários dados e arquivos de log de transações

O exemplo a seguir cria o Archive de banco de dados que tem três arquivos de dados 100-MB e dois arquivos de log de transações 100-MB. O arquivo primário é o primeiro arquivo da lista e é explicitamente especificado com a palavra-chave PRIMARY. Os arquivos de log de transações são especificados seguindo as palavras-chave LOG ON. Observe as extensões usadas para os arquivos na opção FILENAME: .mdf é usado para arquivos de dados primários, .ndf é usado para os arquivos de dados secundários e .ldf é usado para arquivos de log de transações. Este exemplo coloca o banco de dados na unidade de D: em vez de no banco de dados master.

USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
    (NAME = Arch1,
    FILENAME = 'D:\SalesData\archdat1.mdf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch2,
    FILENAME = 'D:\SalesData\archdat2.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch3,
    FILENAME = 'D:\SalesData\archdat3.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20)
LOG ON
  (NAME = Archlog1,
    FILENAME = 'D:\SalesData\archlog1.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
  (NAME = Archlog2,
    FILENAME = 'D:\SalesData\archlog2.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20) ;
GO

D. Criar um banco de dados que tenha grupos de arquivos

O exemplo a seguir cria o banco de dados Sales que tem os seguintes grupos de arquivos:

  • O grupo de arquivos primário com os arquivos Spri1_dat e Spri2_dat. Os incrementos FILEGROWTH para esses arquivos são especificados como 15%.
  • Um grupo de arquivos chamado SalesGroup1 com os arquivos SGrp1Fi1 e SGrp1Fi2.
  • Um grupo de arquivos chamado SalesGroup2 com os arquivos SGrp2Fi1 e SGrp2Fi2.

Este exemplo coloca os dados e os arquivos de log em discos diferentes para melhorar o desempenho.

USE master;
GO
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
    FILENAME = 'D:\SalesData\SPri1dat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
( NAME = SPri2_dat,
    FILENAME = 'D:\SalesData\SPri2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
    FILENAME = 'D:\SalesData\SG1Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
    FILENAME = 'D:\SalesData\SG1Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
    FILENAME = 'D:\SalesData\SG2Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
    FILENAME = 'D:\SalesData\SG2Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'E:\SalesLog\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

E. Anexar uma base de dados

O exemplo a seguir desanexa o banco de dados Archive criado no exemplo D e, em seguida, anexa-o usando a cláusula FOR ATTACH. Archive foi definido para ter vários dados e arquivos de log. No entanto, como o local dos arquivos não foi alterado desde que foram criados, apenas o arquivo primário deve ser especificado na cláusula FOR ATTACH. A partir do SQL Server 2005 (9.x), todos os arquivos de texto completo que fazem parte do banco de dados que está sendo anexado serão anexados ao banco de dados.

USE master;
GO
sp_detach_db Archive;
GO
CREATE DATABASE Archive
  ON (FILENAME = 'D:\SalesData\archdat1.mdf')
  FOR ATTACH ;
GO

F. Criar um instantâneo do banco de dados

O exemplo a seguir cria o instantâneo do banco de dados sales_snapshot0600. Como um instantâneo de banco de dados é somente leitura, um arquivo de log não pode ser especificado. Em conformidade com a sintaxe, cada arquivo no banco de dados de origem é especificado e os grupos de arquivos não são especificados.

O banco de dados de origem para este exemplo é o banco de dados Sales criado no exemplo D.

USE master;
GO
CREATE DATABASE sales_snapshot0600 ON
    ( NAME = SPri1_dat, FILENAME = 'D:\SalesData\SPri1dat_0600.ss'),
    ( NAME = SPri2_dat, FILENAME = 'D:\SalesData\SPri2dt_0600.ss'),
    ( NAME = SGrp1Fi1_dat, FILENAME = 'D:\SalesData\SG1Fi1dt_0600.ss'),
    ( NAME = SGrp1Fi2_dat, FILENAME = 'D:\SalesData\SG1Fi2dt_0600.ss'),
    ( NAME = SGrp2Fi1_dat, FILENAME = 'D:\SalesData\SG2Fi1dt_0600.ss'),
    ( NAME = SGrp2Fi2_dat, FILENAME = 'D:\SalesData\SG2Fi2dt_0600.ss')
AS SNAPSHOT OF Sales ;
GO

G. Criar um banco de dados e especificar um nome de agrupamento e opções

O exemplo a seguir cria o banco de dados MyOptionsTest. Um nome de agrupamento é especificado e as opções TRUSTYWORTHY e DB_CHAINING são definidas como ON.

USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE French_CI_AI
WITH TRUSTWORTHY ON, DB_CHAINING ON;
GO
--Verifying collation and option settings.
SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO

H. Anexar um catálogo de texto completo que foi movido

O exemplo a seguir anexa o catálogo de texto completo AdvWksFtCat juntamente com os dados AdventureWorks2022 e arquivos de log. Neste exemplo, o catálogo de texto completo é movido de seu local padrão para um novo local c:\myFTCatalogs. Os dados e arquivos de log permanecem em seus locais padrão.

USE master;
GO
--Detach the AdventureWorks2022 database
sp_detach_db AdventureWorks2022;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2022 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2022 ON
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_data.mdf'),
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_log.ldf'),
    (FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO

Eu. Criar um banco de dados que especifique um grupo de arquivos de linha e dois grupos de arquivos FILESTREAM

O exemplo a seguir cria o banco de dados FileStreamDB. O banco de dados é criado com um grupo de arquivos de linha e dois grupos de arquivos FILESTREAM. Cada grupo de arquivos contém um arquivo:

  • FileStreamDB_data contém dados de linha. Ele contém um arquivo, FileStreamDB_data.mdf com o caminho padrão.
  • FileStreamPhotos contém dados FILESTREAM. Ele contém dois contêineres de dados FILESTREAM, FSPhotos, localizados em C:\MyFSfolder\Photos e FSPhotos2, localizados em D:\MyFSfolder\Photos. Ele é marcado como o grupo de arquivos FILESTREAM padrão.
  • FileStreamResumes contém dados FILESTREAM. Ele contém um contêiner de dados FILESTREAM, FSResumes, localizado em C:\MyFSfolder\Resumes.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
      FROM master.sys.master_files
      WHERE database_id = 1 AND file_id = 1);

 -- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE FileStreamDB
ON PRIMARY
    (
    NAME = FileStreamDB_data
    ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf''
    ,SIZE = 10MB
    ,MAXSIZE = 50MB
    ,FILEGROWTH = 15%
    ),
FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT
    (
    NAME = FSPhotos
    ,FILENAME = ''C:\MyFSfolder\Photos''
-- SIZE and FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
, MAXSIZE = 5000 MB
    ),
    (
      NAME = FSPhotos2
      , FILENAME = ''D:\MyFSfolder\Photos''
      , MAXSIZE = 10000 MB
     ),
FILEGROUP FileStreamResumes CONTAINS FILESTREAM
    (
    NAME = FileStreamResumes
    ,FILENAME = ''C:\MyFSfolder\Resumes''
    )
LOG ON
    (
    NAME = FileStream_log
    ,FILENAME = ''' + @data_path + 'FileStreamDB_log.ldf''
    ,SIZE = 5MB
    ,MAXSIZE = 25MB
    ,FILEGROWTH = 5MB
    )'
);
GO

J. Criar um banco de dados que tenha um grupo de arquivos FILESTREAM com vários arquivos

O exemplo a seguir cria o banco de dados BlobStore1. O banco de dados é criado com um grupo de arquivos de linha e um grupo de arquivos FILESTREAM, FS. O grupo de arquivos FILESTREAM contém dois arquivos, FS1 e FS2. Em seguida, o banco de dados é alterado adicionando um terceiro arquivo, FS3, ao grupo de arquivos FILESTREAM.

USE master;
GO

CREATE DATABASE [BlobStore1]
CONTAINMENT = NONE
ON PRIMARY
(
    NAME = N'BlobStore1',
    FILENAME = N'C:\BlobStore\BlobStore1.mdf',
    SIZE = 100MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 1MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(  
    NAME = N'FS1',
    FILENAME = N'C:\BlobStore\FS1',
    MAXSIZE = UNLIMITED
),
(
    NAME = N'FS2',
    FILENAME = N'C:\BlobStore\FS2',
    MAXSIZE = 100MB
)
LOG ON
(
    NAME = N'BlobStore1_log',
    FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
    SIZE = 100MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 1MB
);
GO

ALTER DATABASE [BlobStore1]
ADD FILE
(
    NAME = N'FS3',
    FILENAME = N'C:\BlobStore\FS3',
    MAXSIZE = 100MB
)
TO FILEGROUP [FS];
GO

* Banco de dados SQL *

de instância gerenciada SQL

Plataforma de análise
Sistema (PDW)

 

Banco de dados SQL

Visão geral

No Banco de Dados SQL do Azure, essa instrução pode ser usada com um servidor SQL do Azure para criar um único banco de dados ou um banco de dados em um pool elástico. Com essa instrução, você especifica o nome do banco de dados, o agrupamento, o tamanho máximo, a edição, o objetivo do serviço e, se aplicável, o pool elástico para o novo banco de dados. Ele também pode ser usado para criar o banco de dados em um pool elástico. Além disso, ele pode ser usado para criar uma cópia do banco de dados em outro servidor do Banco de dados SQL.

Sintaxe

Criar uma base de dados

Para obter mais informações sobre as convenções de sintaxe, consulte Transact-SQL convenções de sintaxe.

CREATE DATABASE database_name [ COLLATE collation_name ]
{
  (<edition_options> [, ...n])
}
[ WITH <with_options> [,..n]]
[;]

<with_options> ::=
{
    CATALOG_COLLATION = { DATABASE_DEFAULT | SQL_Latin1_General_CP1_CI_AS }
  | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' | 'GEOZONE' }
  | LEDGER = {ON | OFF }
}

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | ( EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale' }
  | SERVICE_OBJECTIVE =
    { 'Basic' | 'S0' | 'S1' | 'S2' | 'S3' | 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'BC_DC_n'
      | 'BC_Gen5_n' 
      | 'BC_M_n' 
      | 'GP_DC_n'
      | 'GP_Fsv2_n' 
      | 'GP_Gen5_n' 
      | 'GP_S_Gen5_n' 
      | 'HS_DC_n'
      | 'HS_Gen5_n'
      | 'HS_S_Gen5_n'
      | 'HS_MOPRMS_n' 
      | 'HS_PRMS_n' 
      | { ELASTIC_POOL(name = <elastic_pool_name>) } })
}

Copiar um banco de dados

CREATE DATABASE database_name
    AS COPY OF [source_server_name.] source_database_name
    [ ( SERVICE_OBJECTIVE =
      { 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'GP_Gen5_n'
      | 'GP_Fsv2_n'
      | 'GP_S_Gen5_n'
      | 'BC_Gen5_n'
      | 'BC_M_n'
      | 'HS_Gen5_n'
      | 'HS_S_Gen5_n'
      | 'HS_PRMS_n'
      | 'HS_MOPRMS_n'
      | { ELASTIC_POOL(name = <elastic_pool_name>) } })
   ]
   [ WITH ( BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' } ) ]
[;]

Argumentos

database_name

O nome do novo banco de dados. Esse nome deve ser exclusivo no SQL Server e estar em conformidade com as regras do SQL Server para identificadores. Para obter mais informações, consulte Identificadores.

Collation_name

Especifica o agrupamento padrão para os dados do banco de dados. Especifique CATALOG_COLLATION para metadados do sistema, como identificadores de objeto.

O nome do agrupamento pode ser um nome de agrupamento do Windows ou um nome de agrupamento SQL. Se não for especificado, o banco de dados receberá o agrupamento padrão, que é SQL_Latin1_General_CP1_CI_AS.

Para obter mais informações sobre os nomes de agrupamento Windows e SQL, COLLATE (Transact-SQL).

CATALOG_COLLATION

Especifica o agrupamento padrão para o catálogo de metadados. O argumento CATALOG_COLLATION só está disponível durante a criação do banco de dados e não pode ser alterado após a criação.

Por padrão, o catálogo de metadados para nomes de objetos do sistema é agrupado para SQL_Latin1_General_CP1_CI_AS agrupamento. Essa é a configuração padrão no Banco de Dados SQL do Azure se CATALOG_COLLATION não for especificado.

DATABASE_DEFAULT especifica que o catálogo de metadados usado para exibições do sistema e tabelas do sistema seja agrupado para corresponder ao agrupamento do banco de dados. Se desejar que os identificadores de objeto nos metadados do sistema sigam o mesmo agrupamento que os dados, crie o banco de dados WITH CATALOG_COLLATION = DATABASE_DEFAULT.

  • Você pode desejar agrupamentos diferentes para identificadores de dados e objetos. O exemplo a seguir cria o banco de dados com um agrupamento que diferencia maiúsculas de minúsculas para dados de linha, mas usará o agrupamento padrão SQL_Latin1_General_CP1_CI_AS que não diferencia maiúsculas de minúsculas para identificadores de objeto.

    CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
    
  • Se desejar que os dados e os metadados do sistema usem o mesmo agrupamento, especifique WITH CATALOG_COLLATION = DATABASE_DEFAULT. O exemplo a seguir cria o banco de dados com um agrupamento que diferencia maiúsculas de minúsculas, que será usado para identificadores de objeto.

    CREATE DATABASE [same-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
    WITH CATALOG_COLLATION = DATABASE_DEFAULT
    

BACKUP_STORAGE_REDUNDANCY = {'LOCAL' | 'ZONA' | 'GEO'}

Especifica como a restauração point-in-time e os backups de retenção de longo prazo para um banco de dados são replicados. A restauração geográfica ou a capacidade de recuperação de uma interrupção regional só está disponível quando o banco de dados é criado com redundância de armazenamento de backup GEO. A menos que explicitamente especificado, os bancos de dados criados com T-SQL usam armazenamento de backup com redundância geográfica.

Para impor a residência de dados ao criar um banco de dados usando T-SQL, use LOCAL ou ZONE como entrada para o parâmetro BACKUP_STORAGE_REDUNDANCY.

Ao criar um banco de dados como uma cópia de outro banco de dados com AS COPY OF, a especificação de opções é suportada e deve ser colocada entre parênteses. Por exemplo, WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

LEDGER = {LIGADO | DESLIGADO }

Quando definido como ON, ele cria um banco de dados contábil, no qual a integridade de todos os dados do usuário é protegida. Somente tabelas contábeis podem ser criadas em um banco de dados contábil. O padrão é OFF. O valor da opção LEDGER não pode ser alterado depois que o banco de dados é criado. Para obter mais informações, consulte Configurar um banco de dados contábil.

TAMANHO MÁXIMO

Especifica o tamanho máximo do banco de dados. MAXSIZE deve ser válido para o EDITION especificado (camada de serviço).

A seguir estão os valores MAXSIZE suportados e os padrões (D) para as camadas de serviço.

Observação

O argumento MAXSIZE não se aplica a bancos de dados únicos na camada de serviço Hyperscale. Os bancos de dados de camada Hyperscale única crescem conforme necessário, até 128 TB. O serviço Banco de dados SQL adiciona armazenamento automaticamente - não é necessário definir um tamanho máximo.

modelo DTU para bancos de dados únicos e em pool em um servidor do Banco de dados SQL

MAXSIZE Básico S0-S2 S3-S12 P1-P6 P11-P15
100 MB
500 MB
1 GB
2 GB √ (D)
5 GB N/A
10 GB N/A
20 GB N/A
30 GB N/A
40 GB N/A
50 GB N/A
100 GB N/A
150 GB N/A
200 GB N/A
250 GB N/A √ (D) √ (D)
300 GB N/A N/A
400 GB N/A N/A
500 GB N/A N/A √ (D)
750 GB N/A N/A
1.024 GB N/A N/A √ (D)
De 1.024 GB até 4.096 GB em incrementos de 256 GB* N/A N/A N/A N/A

* P11 e P15 permitem MAXSIZE até 4 TB com 1.024 GB sendo o tamanho padrão. P11 e P15 podem usar até 4 TB de armazenamento incluído sem custo adicional. No nível Premium, MAXSIZE maior que 1 TB está atualmente disponível nas seguintes regiões: Leste dos EUA2, Oeste dos EUA, Gov dos EUA Virgínia, Europa Ocidental, Alemanha Central, Sudeste Asiático, Leste do Japão, Leste da Austrália, Canadá Central e Leste do Canadá. Para obter mais informações sobre limitações de recursos para o modelo de DTU, consulte limites de recursos da DTU.

O valor MAXSIZE para o modelo DTU, se especificado, deve ser um valor válido mostrado na tabela anterior para a camada de serviço especificada.

Para limites como tamanho máximo de dados e tamanho de tempdb no modelo de compra vCore, consulte os artigos para limites de recursos para bancos de dados únicos ou limites de recursos para pools elásticos.

Se nenhum valor MAXSIZE for definido ao usar o modelo vCore, o padrão será 32 GB. Para obter mais informações sobre limitações de recursos para o modelo vCore, consulte vCore resource limits.

EDIÇÃO

Especifica a camada de serviço do banco de dados.

Bases de dados únicas e agrupadas. Os valores disponíveis são: 'Basic', 'Standard', 'Premium', 'GeneralPurpose', 'BusinessCritical' e 'Hyperscale'.

As seguintes regras se aplicam aos argumentos MAXSIZE e EDITION:

  • Se EDITION for especificado, mas MAXSIZE não for especificado, o valor padrão para a edição será usado. Por exemplo, se o EDITION estiver definido como Standard e o MAXSIZE não for especificado, o MAXSIZE será automaticamente definido como 250 MB.
  • Se nem MAXSIZE nem EDITION forem especificados, EDITION será definido como GeneralPurposee MAXSIZE será definido como 32 GB.

SERVICE_OBJECTIVE

Especifica o tamanho da computação e o objetivo do serviço.

  • Para o modelo de compra DTU: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15
  • Para o modelo de compra vCore mais recente, escolha a camada e forneça o número de vCores de uma lista predefinida de valores, onde o número de vCores é n. Consulte a limites de recursos para bancos de dados únicos ou limites de recursos para pools elásticos.
    • Por exemplo:
    • GP_Gen5_8 para uso geral, computação provisionada, série padrão (Gen5), 8 vCores.
    • GP_S_Gen5_8 para uso geral, computação sem servidor, série padrão (Gen5), 8 vCores.
    • HS_Gen5_8 para Hyperscale, computação provisionada, série padrão (Gen5), 8 vCores.
    • HS_S_Gen5_8 para Hyperscale, computação sem servidor, série Standard (Gen5), 8 vCores.

Para obter descrições de objetivos de serviço e mais informações sobre o tamanho, as edições e as combinações de objetivos de serviço, consulte Camadas de Serviço do Banco de Dados SQL do Azure. Se o SERVICE_OBJETIVE especificado não for suportado pelo EDITION, receberá um erro. Para alterar o valor SERVICE_OBJETIVE de uma camada para outra (por exemplo, de S1 para P1), você também deve alterar o valor EDITION. Foi suprimido o apoio aos objetivos do serviço PRS.

ELASTIC_POOL (nome = <elastic_pool_name>)

Aplica-se a: Somente bancos de dados únicos e em pool. Não se aplica a bancos de dados na camada de serviço Hyperscale. Para criar um novo banco de dados em um pool de banco de dados elástico, defina a SERVICE_OBJETIVE do banco de dados como ELASTIC_POOL e forneça o nome do pool. Para obter mais informações, consulte Criar e gerenciar um pool elástico do Banco de dados SQL.

COMO CÓPIA DE [source_server_name.]source_database_name

Aplica-se a: Somente bancos de dados únicos e em pool.

Use AS COPY OF para copiar um banco de dados para o mesmo servidor ou para um servidor diferente do Banco de dados SQL.

Ao criar um banco de dados como uma cópia de outro banco de dados com AS COPY OF, a especificação de opções é suportada e deve ser colocada entre parênteses. Por exemplo, WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

source_server_name O nome do servidor do Banco de dados SQL onde o banco de dados de origem está localizado. Esse parâmetro é opcional quando o banco de dados de origem e o banco de dados de destino devem estar localizados no mesmo servidor do Banco de dados SQL.

Observação

O argumento AS COPY OF não suporta os nomes de domínio exclusivos totalmente qualificados. Em outras palavras, se o nome de domínio totalmente qualificado do seu servidor for serverName.database.windows.net, use apenas serverName durante a cópia do banco de dados.

source_database_name

O nome do banco de dados a ser copiado.

Comentários

Os bancos de dados no Banco de Dados SQL do Azure têm várias configurações padrão que são definidas quando o banco de dados é criado. Para obter mais informações sobre essas configurações padrão, consulte a lista de valores em DATABASEPROPERTYEX.

MAXSIZE fornece a capacidade de limitar o tamanho do banco de dados. Se o tamanho do banco de dados atingir seu MAXSIZE, você receberá o código de erro 40544. Quando isso ocorre, não é possível inserir ou atualizar dados ou criar novos objetos (como tabelas, procedimentos armazenados, exibições e funções). No entanto, você ainda pode ler e excluir dados, truncar tabelas, descartar tabelas e índices e reconstruir índices. Em seguida, você pode atualizar MAXSIZE para um valor maior do que o tamanho atual do banco de dados ou excluir alguns dados para liberar espaço de armazenamento. Pode haver um atraso de quinze minutos antes de poder inserir novos dados.

Para alterar os valores de tamanho, edição ou objetivo de serviço posteriormente, use ALTER DATABASE (Banco de Dados SQL do Azure).

Cópias de banco de dados

Aplica-se a: Somente bancos de dados únicos e em pool.

Copiar um banco de dados usando a instrução CREATE DATABASE é uma operação assíncrona. Portanto, uma conexão com o servidor do Banco de dados SQL não é necessária durante toda a duração do processo de cópia. A instrução CREATE DATABASE retorna o controle para o usuário depois que a entrada no sys.databases é criada, mas antes que a operação de cópia do banco de dados seja concluída. Em outras palavras, a instrução CREATE DATABASE retorna com êxito quando a cópia do banco de dados ainda está em andamento.

  • Monitorando o processo de cópia em um servidor do Banco de dados SQL: consulte as colunas ou na coluna dm_database_copies ou na exibição sys.databases . A visualização sys.dm_operation_status pode ser usada, bem como retorna o status das operações do banco de dados, incluindo a cópia do banco de dados.

No momento em que o processo de cópia é concluído com êxito, o banco de dados de destino é transacionalmente consistente com o banco de dados de origem.

As seguintes regras semânticas e de sintaxe aplicam-se ao seu uso do argumento AS COPY OF:

  • O nome do servidor de origem e o nome do servidor para o destino da cópia podem ser iguais ou diferentes. Quando eles são os mesmos, esse parâmetro é opcional e o contexto do servidor da sessão atual é usado por padrão.
  • Os nomes dos bancos de dados de origem e destino devem ser especificados, exclusivos e estar em conformidade com as regras do SQL Server para identificadores. Para obter mais informações, consulte Identificadores.
  • A instrução CREATE DATABASE deve ser executada no contexto do banco de dados master do servidor do Banco de dados SQL onde o novo banco de dados será criado.
  • Após a conclusão da cópia, o banco de dados de destino deve ser gerenciado como um banco de dados independente. Você pode executar as instruções ALTER DATABASE e DROP DATABASE no novo banco de dados independentemente do banco de dados de origem. Você também pode copiar o novo banco de dados para outro novo banco de dados.
  • O banco de dados de origem pode continuar a ser acessado enquanto a cópia do banco de dados estiver em andamento.

Para obter mais informações, consulte Criar uma cópia de um banco de dados SQL do Azure usando o Transact-SQL.

Importante

Por padrão, a cópia do banco de dados é criada com a mesma redundância de armazenamento de backup do banco de dados de origem.

Permissões

Para criar um banco de dados, o login deve ser um dos seguintes principais:

  • O login principal no nível do servidor
  • O administrador do Microsoft Entra para o servidor lógico no Azure
  • Um logon que é membro da função de banco de dados dbmanager

Requisitos adicionais para usar CREATE DATABASE ... AS COPY OF sintaxe: O login que executa a instrução no servidor local também deve ser pelo menos o db_owner no servidor de origem. Se o logon for baseado na autenticação do SQL Server, o logon que executa a instrução no servidor local deverá ter um logon correspondente no servidor do Banco de dados SQL de origem, com um nome e senha idênticos.

Exemplos

Exemplo simples

Um exemplo simples para criar um banco de dados.

CREATE DATABASE TestDB1;

Exemplo simples com edição

Um exemplo simples para criar um banco de dados de uso geral.

CREATE DATABASE TestDB2
( EDITION = 'GeneralPurpose' );

Exemplo com opções adicionais

Um exemplo usando várias opções.

CREATE DATABASE hito
COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS_WS
( MAXSIZE = 500 MB, EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' ) ;

Criar uma cópia de banco de dados

Um exemplo de criação de uma cópia de um banco de dados.

Aplica-se a: Somente bancos de dados únicos e em pool.

CREATE DATABASE escuela
AS COPY OF school;

Criar um banco de dados em um pool elástico

Cria um novo banco de dados no pool chamado S3M100:

Aplica-se a: Somente bancos de dados únicos e em pool.

CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) ) ;

Criar uma cópia de um banco de dados em outro servidor lógico

O exemplo a seguir cria uma cópia do banco de dados db_original chamado db_copy no objetivo de serviço de finalidade geral para um único banco de dados. Isso é verdadeiro independentemente de db_original estar em um pool elástico ou em um tamanho de computação (objetivo de serviço) para um único banco de dados.

Aplica-se a: Somente bancos de dados únicos e em pool.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original ( EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' );

O exemplo a seguir cria uma cópia do banco de dados db_original, chamada db_copy em um pool elástico chamado ep1. Isso é verdadeiro independentemente de db_original estar em um pool elástico ou em um tamanho de computação (objetivo de serviço) para um único banco de dados. Se db_original estiver em um pool elástico com um nome diferente, db_copy ainda será criado em ep1.

Aplica-se a: Somente bancos de dados únicos e em pool.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original
  (SERVICE_OBJECTIVE = ELASTIC_POOL( name = ep1 ) ) ;

Criar banco de dados com valor de agrupamento de catálogo especificado

O exemplo a seguir define o agrupamento de catálogo como DATABASE_DEFAULT durante a criação do banco de dados, o que define o agrupamento de catálogo como igual ao agrupamento de banco de dados.

CREATE DATABASE TestDB3 COLLATE Japanese_XJIS_140 (MAXSIZE = 100 MB, EDITION = 'Basic')
  WITH CATALOG_COLLATION = DATABASE_DEFAULT;

Criar banco de dados usando redundância de zona para backups

O exemplo a seguir define redundância de zona para backups de banco de dados. Os backups de restauração point-in-time e os backups de retenção de longo prazo (se configurados) usarão a mesma redundância de armazenamento de backup.

CREATE DATABASE test_zone_redundancy 
  WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';

Criar um banco de dados contábil

CREATE DATABASE MyLedgerDB ( EDITION = 'GeneralPurpose' ) WITH LEDGER = ON;

Criar como cópia de um banco de dados ao alterar opções

O exemplo a seguir define opções diferentes para a nova cópia de um banco de dados, incluindo uma camada de serviço diferente e configurações de redundância de armazenamento de backup. Por padrão, a cópia do banco de dados é criada com as mesmas configurações do banco de dados de origem.

CREATE DATABASE copy_testdb
AS COPY OF [test_db]
  (EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8')
  WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');

* Instância gerenciada SQL *

Plataforma de análise
Sistema (PDW)

 

Instância Gerenciada SQL do Azure

Visão geral

Na Instância Gerenciada SQL do Azure, essa instrução é usada para criar um banco de dados. Ao criar um banco de dados em uma instância gerenciada, você especifica o nome e o agrupamento do banco de dados.

Sintaxe

Para obter mais informações sobre as convenções de sintaxe, consulte Transact-SQL convenções de sintaxe.

CREATE DATABASE database_name [ COLLATE collation_name ]
[ WITH <with_options> [,..n]]
[;]

<with_options> ::=
{
  LEDGER = { ON | OFF }
}

Importante

Para adicionar arquivos ou definir contenção para um banco de dados em uma instância gerenciada, use a instrução ALTER DATABASE.

Para instâncias gerenciadas pelo SQL, o MAXSIZE inicial é implicitamente definido como o tamanho do disco atual e não é alterado automaticamente quando você estende o tamanho do disco a partir do portal do Azure. Depois de estender o disco, você também deve estender MAXSIZE com ALTER DATABASE para evitar erros completos do arquivo de banco de dados.

Argumentos

database_name

O nome do novo banco de dados. Esse nome deve ser exclusivo no servidor SQL e estar em conformidade com as regras do SQL Server para identificadores. Para obter mais informações, consulte Identificadores.

Collation_name

Especifica o agrupamento padrão para o banco de dados. O nome do agrupamento pode ser um nome de agrupamento do Windows ou um nome de agrupamento SQL. Se não for especificado, o banco de dados receberá o agrupamento padrão, que é SQL_Latin1_General_CP1_CI_AS.

Para obter mais informações sobre os nomes de agrupamento Windows e SQL, COLLATE (Transact-SQL).

LEDGER = {LIGADO | DESLIGADO }

Quando definido como ON, ele cria um banco de dados contábil, no qual a integridade de todos os dados do usuário é protegida. Somente tabelas contábeis podem ser criadas em um banco de dados contábil. O padrão é OFF. O valor da opção LEDGER não pode ser alterado depois que o banco de dados é criado. Para obter mais informações, consulte Configurar um banco de dados contábil.

Comentários

Os bancos de dados no Banco de Dados SQL do Azure têm várias configurações padrão que são definidas quando o banco de dados é criado. Para obter mais informações sobre essas configurações padrão, consulte a lista de valores em DATABASEPROPERTYEX.

Importante

A declaração CREATE DATABASE deve ser a única declaração em um lote Transact-SQL.

A seguir estão CREATE DATABASE limitações:

  • Arquivos e grupos de arquivos não podem ser definidos.

  • WITHopções não são suportadas, exceto para WITH LEDGER.

    Dica

    Como solução alternativa, use ALTER DATABASE. Depois CREATE DATABASE definir opções de banco de dados e adicionar arquivos.

Permissões

Para criar um banco de dados, um logon deve ser um dos seguintes:

  • O login principal no nível do servidor
  • O administrador do Microsoft Entra para o servidor lógico no Azure
  • Um logon que é membro da função de banco de dados dbcreator

Exemplos

Exemplo simples

Um exemplo simples para criar um banco de dados.

CREATE DATABASE TestDB1;

Criar um banco de dados contábil

CREATE DATABASE MyLedgerDB WITH LEDGER = ON;

de instância gerenciada SQL

* Sinapse do Azure
Análise *

Plataforma de análise
Sistema (PDW)

 

Azure Synapse Analytics

Visão geral

No Azure Synapse, essa instrução pode ser usada com um servidor do Banco de Dados SQL do Azure para criar um pool SQL dedicado. Com essa instrução, você especifica o nome do banco de dados, o agrupamento, o tamanho máximo, a edição e o objetivo do serviço.

  • CREATE DATABASE é suportado para pools SQL dedicados autônomos (anteriormente SQL DW) usando níveis de serviço Gen2.
  • CREATE DATABASE não tem suporte para pools SQL dedicados em um espaço de trabalho do Azure Synapse Analytics. Em vez disso, usar o portal do Azure.
  • CREATE DATABASE tem suporte para pools SQL sem servidor no Azure Synapse Analytics.

Sintaxe

Para obter mais informações sobre as convenções de sintaxe, consulte Transact-SQL convenções de sintaxe.

CREATE DATABASE database_name [ COLLATE collation_name ]
(
    [ MAXSIZE = {
          250 | 500 | 750 | 1024 | 5120 | 10240 | 20480 | 30720
        | 40960 | 51200 | 61440 | 71680 | 81920 | 92160 | 102400
        | 153600 | 204800 | 245760
      } GB ,
    ]
    EDITION = 'datawarehouse',
    SERVICE_OBJECTIVE = {
          'DW100c' | 'DW200c' | 'DW300c' | 'DW400c' | 'DW500c'
        | 'DW1000c' | 'DW1500c' | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c'
        | 'DW6000c' | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
    }
)
[;]

Argumentos

database_name

O nome do novo banco de dados. Esse nome deve ser exclusivo no servidor SQL, que pode hospedar ambos os bancos de dados no Banco de Dados SQL do Azure e nos bancos de dados do Azure Synapse Analytics, e estar em conformidade com as regras do SQL Server para identificadores. Para obter mais informações, consulte Identificadores.

collation_name

Especifica o agrupamento padrão para o banco de dados. O nome do agrupamento pode ser um nome de agrupamento do Windows ou um nome de agrupamento SQL. Se não for especificado, o banco de dados receberá o agrupamento padrão, que é SQL_Latin1_General_CP1_CI_AS.

Para obter mais informações sobre os nomes de agrupamento Windows e SQL, consulte COLLATE (Transact-SQL).

MAXSIZE

O padrão é 245.760 GB (240 TB).

Aplica-se a: otimizado para Compute Gen1

O tamanho máximo permitido para o banco de dados. O banco de dados não pode crescer além de MAXSIZE.

Aplica-se a: otimizado para Compute Gen2

O tamanho máximo permitido para dados rowstore no banco de dados. Os dados armazenados em tabelas de armazenamento de linhas, deltastore de um índice columnstore ou um índice não clusterizado em um índice columnstore clusterizado não podem crescer além de MAXSIZE. Os dados compactados no formato columnstore não têm um limite de tamanho e não são restringidos por MAXSIZE.

EDIÇÃO

Especifica a camada de serviço do banco de dados. Para o Azure Synapse Analytics, use datawarehouse.

SERVICE_OBJECTIVE

Especifica o tamanho da computação (objetivo do serviço). Os níveis de serviço para Gen2 são medidos em unidades de armazém de dados de computação (cDWU), por exemplo, DW2000c. Os níveis de serviço Gen1 são medidos em DWUs, por exemplo, DW2000. Para obter mais informações sobre objetivos de serviço para o Azure Synapse, consulte Data Warehouse Units (DWUs). Os objetivos de serviço Gen1 (não estão mais listados) não são mais suportados, você pode receber um erro: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.

Comentários

Use DATABASEPROPERTYEX para ver as propriedades do banco de dados.

Use ALTER DATABASE - Azure Synapse Analytics para alterar o tamanho máximo ou os valores do objetivo de serviço posteriormente.

O Azure Synapse está definido como COMPATIBILITY_LEVEL 130 e não pode ser alterado. Para obter mais informações, consulte Desempenho de consulta aprimorado com nível de compatibilidade 130 no Banco de Dados SQL do Azure.

Permissões

Permissões necessárias:

  • Login principal no nível do servidor, criado pelo processo de provisionamento, ou
  • Membro da função de banco de dados dbmanager.

Tratamento de erros

Se o tamanho do banco de dados atingir MAXSIZE, você receberá o código de erro 40544. Quando isso ocorre, você não pode inserir e atualizar dados ou criar novos objetos (como tabelas, procedimentos armazenados, exibições e funções). Você ainda pode ler e excluir dados, truncar tabelas, soltar tabelas e índices e reconstruir índices. Em seguida, você pode atualizar MAXSIZE para um valor maior do que o tamanho atual do banco de dados ou excluir alguns dados para liberar espaço de armazenamento. Pode haver um atraso de quinze minutos antes de poder inserir novos dados.

Limitações

Você deve estar conectado ao banco de dados master para criar um novo banco de dados.

A declaração CREATE DATABASE deve ser a única declaração em um lote Transact-SQL.

Não é possível alterar o agrupamento do banco de dados após a criação do banco de dados.

Exemplos: Azure Synapse Analytics

Um. Exemplo simples

Um exemplo simples para criar um pool SQL dedicado autônomo (anteriormente SQL DW). Isso cria o banco de dados com o menor tamanho máximo (10.240 GB), o agrupamento padrão (SQL_Latin1_General_CP1_CI_AS) e o menor objetivo de serviço Gen2 (DW100c).

CREATE DATABASE TestDW
(EDITION = 'datawarehouse', SERVICE_OBJECTIVE='DW100c');

B. Crie um banco de dados de data warehouse com todas as opções

Um exemplo de criação de um pool SQL dedicado autônomo de 10 terabytes (anteriormente SQL DW).

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
(MAXSIZE = 10240 GB, EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW1000c');

C. Exemplo simples em um pool SQL sem servidor do Synapse Analytics

Isso cria o banco de dados no pool sem servidor, especificando um agrupamento (Latin1_General_100_CI_AS_KS_WS).

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS

de instância gerenciada SQL

* Plataforma de análise
Sistema (PDW) *

 

Sistema de plataforma de análise

Visão geral

No Analytics Platform System, essa instrução é usada para criar um novo banco de dados em um dispositivo Analytics Platform System. Use esta instrução para criar todos os arquivos associados a um banco de dados de dispositivo e para definir o tamanho máximo e as opções de crescimento automático para as tabelas de banco de dados e o log de transações.

Sintaxe

Para obter mais informações sobre as convenções de sintaxe, consulte Transact-SQL convenções de sintaxe.

CREATE DATABASE database_name
WITH (
    [ AUTOGROW = ON | OFF , ]
    REPLICATED_SIZE = replicated_size [ GB ] ,
    DISTRIBUTED_SIZE = distributed_size [ GB ] ,
    LOG_SIZE = log_size [ GB ] )
[;]

Argumentos

database_name

O nome do novo banco de dados. Para obter mais informações sobre nomes de banco de dados permitidos, consulte "Regras de nomenclatura de objetos" e "Nomes de bancos de dados reservados" na documentação do produto Analytics Platform System (PDW).

CRESCIMENTO AUTOMÁTICO = ATIVADO | DESLIGADO

Especifica se os parâmetros replicated_size, distributed_sizee log_size desse banco de dados crescerão automaticamente, conforme necessário, além de seus tamanhos especificados. O valor padrão é OFF.

Se AUTOGROW estiver ATIVADO, replicated_size, distributed_sizee log_size crescerão conforme necessário (não em blocos do tamanho especificado inicial) com cada inserção de dados, atualização ou outra ação que exija mais armazenamento do que o já alocado.

Se o AUTOGROW estiver DESLIGADO, os tamanhos não crescerão automaticamente. O Analytics Platform System (PDW) retornará um erro ao tentar uma ação que exija que replicated_size, distributed_sizeou log_size cresçam além do valor especificado.

O AUTOGROW está ATIVADO para todos os tamanhos ou DESATIVADO para todos os tamanhos. Por exemplo, não é possível definir AUTOGROW ON para log_size, mas não defini-lo para replicated_size.

replicated_size [ GB ]

Um número positivo. Define o tamanho (em gigabytes inteiros ou decimais) para o espaço total alocado para tabelas replicadas e dados correspondentes em cada nó de computação. Para obter os requisitos mínimos e máximos de replicated_size, consulte "Valores mínimos e máximos" na documentação do produto Analytics Platform System (PDW).

Se o AUTOGROW estiver ATIVADO, as tabelas replicadas poderão crescer além desse limite.

Se AUTOGROW estiver desativado, um erro será retornado se um usuário tentar criar uma nova tabela replicada, inserir dados em uma tabela replicada existente ou atualizar uma tabela replicada existente de uma maneira que aumentaria o tamanho além replicated_size.

distributed_size [ GB ]

Um número positivo. O tamanho, em gigabytes inteiros ou decimais, para o espaço total alocado para tabelas distribuídas (e dados correspondentes) em todo o dispositivo. Para obter os requisitos mínimos e máximos de distributed_size, consulte "Valores mínimos e máximos" na documentação do produto Analytics Platform System (PDW).

Se o AUTOGROW estiver ATIVADO, as mesas distribuídas poderão crescer além desse limite.

Se AUTOGROW estiver DESATIVADO, um erro será retornado se um usuário tentar criar uma nova tabela distribuída, inserir dados em uma tabela distribuída existente ou atualizar uma tabela distribuída existente de uma maneira que aumentaria o tamanho além distributed_size.

log_size [ GB ]

Um número positivo. O tamanho (em gigabytes inteiros ou decimais) do log de transações no dispositivo.

Para obter os requisitos mínimos e máximos de log_size, consulte "Valores mínimos e máximos" na documentação do produto Analytics Platform System (PDW).

Se AUTOGROW estiver ATIVADO, o arquivo de log poderá crescer além desse limite. Use a instrução DBCC SHRINKLOG (Azure Synapse Analytics) para reduzir o tamanho dos arquivos de log para seu tamanho original.

Se AUTOGROW estiver DESATIVADO, um erro será retornado ao usuário para qualquer ação que aumente o tamanho do log em um nó de computação individual além de log_size.

Permissões

Requer a permissão CREATE ANY DATABASE no banco de dados master ou associação à função de servidor fixa sysadmin.

O exemplo a seguir fornece a permissão para criar um banco de dados para o usuário de banco de dados Fay.

USE master;
GO
GRANT CREATE ANY DATABASE TO [Fay];
GO

Comentários

Os bancos de dados são criados com o nível de compatibilidade de banco de dados 120, que é o nível de compatibilidade do SQL Server 2014 (12.x). Isso garante que o banco de dados será capaz de usar toda a funcionalidade do SQL Server 2014 (12.x) que o PDW usa.

Limitações e Restrições

A instrução CREATE DATABASE não é permitida em uma transação explícita. Para obter mais informações, consulte Instruções.

Para obter informações sobre restrições mínimas e máximas em bancos de dados, consulte "Valores mínimos e máximos" na documentação do produto Analytics Platform System (PDW).

No momento em que um banco de dados é criado, deve haver espaço livre disponível suficiente em cada nó de computação alocar o total combinado dos seguintes tamanhos:

  • Banco de dados SQL Server com tabelas do tamanho de replicated_table_size.
  • Banco de dados SQL Server com tabelas do tamanho de (distributed_table_size / número de nós de computação).
  • O SQL Server registra o tamanho de (log_size / número de nós de computação).

Bloqueio

Usa um bloqueio compartilhado no objeto DATABASE.

Metadados

Depois que essa operação for bem-sucedida, uma entrada para esse banco de dados aparecerá no sys.databases e exibições de metadados sys.objects.

Exemplos: Analytics Platform System (PDW)

Um. Exemplos básicos de criação de banco de dados

O exemplo a seguir cria o banco de dados mytest com uma alocação de armazenamento de 100 GB por nó de computação para tabelas replicadas, 500 GB por dispositivo para tabelas distribuídas e 100 GB por dispositivo para o log de transações. Neste exemplo, AUTOGROW está desativado por padrão.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB );

O exemplo a seguir cria o banco de dados mytest com os mesmos parâmetros acima, exceto que AUTOGROW está ativado. Isso permite que o banco de dados cresça fora dos parâmetros de tamanho especificados.

CREATE DATABASE mytest
  WITH
    (AUTOGROW = ON,
    REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB);

B. Criar um banco de dados com tamanhos parciais de gigabytes

O exemplo a seguir cria o banco de dados mytest, com AUTOGROW desativado, uma alocação de armazenamento de 1,5 GB por nó de computação para tabelas replicadas, 5,25 GB por dispositivo para tabelas distribuídas e 10 GB por dispositivo para o log de transações.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 1.5 GB,
    DISTRIBUTED_SIZE = 5.25 GB,
    LOG_SIZE = 10 GB);