DATABASEPROPERTYEX (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

Para um banco de dados especificado em SQL Server, essa função retorna a configuração atual da opção ou propriedade de banco de dados especificada.

Convenções de sintaxe de Transact-SQL

Sintaxe

DATABASEPROPERTYEX ( database , property )  

Argumentos

database
É uma expressão que especifica o nome do banco de dados para o qual DATABASEPROPERTYEX retorna as informações da propriedade nomeada. database tem um tipo de dados nvarchar (128) .

Para Banco de Dados SQL, DATABASEPROPERTYEX requer o nome do banco de dados atual. Retornará NULL para todas as propriedades se for fornecido um nome de banco de dados diferente.

property
É uma expressão que especifica o nome da propriedade do banco de dados a ser retornada. property tem um tipo de dados varchar (128) e dá suporte a um dos valores nesta tabela:

Observação

Se o banco de dados ainda não foi iniciado, as chamadas para DATABASEPROPERTYEX retornarão NULL se DATABASEPROPERTYEX recuperar esses valores por acesso direto do banco de dados, em vez da recuperação dos metadados. Um banco de dados com AUTO_CLOSE definida como ON ou, caso contrário, offline, é definido como "não iniciado".

Propriedade Descrição Valor retornado
Collation O nome da ordenação padrão para o banco de dados. Nome da ordenação

NULL: o banco de dados não foi iniciado.

Tipo de dados base: nvarchar(128)
ComparisonStyle O estilo de comparação da ordenação do Windows. Use os seguintes valores de estilo para criar um bitmap para o valor ComparisonStyle concluído:

Ignore case: 1
Ignore accent: 2
Ignorar kana: 65536
Ignore width: 131072

Por exemplo, o padrão de 196609 é o resultado de combinar as opções ignorar maiúsculas e minúsculas, ignorar kana e ignorar largura.
Retorna o estilo de comparação.

Retorna 0 para todas as ordenações primárias.

Tipo de dados base: int
Edition A camada de edição ou de serviço do banco de dados. Aplica-se a: Banco de Dados SQL do Azure, Azure Synapse Analytics.



Uso Geral

Comercialmente Crítico

Basic

Standard

Premium

Sistema (para o banco de dados mestre)

NULL: o banco de dados não foi iniciado.

Tipo de dados base: nvarchar(64)
IsAnsiNullDefault O banco de dados segue regras de ISO por permitir valores nulos. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAnsiNullsEnabled Todas as comparações com um nulo são avaliadas como desconhecido. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAnsiPaddingEnabled As cadeias de caracteres são convertidas na mesma largura antes da comparação ou inserção. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAnsiWarningsEnabled Mensagens de erro ou de aviso do SQL Server quando ocorrem condições de erro padrão. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsArithmeticAbortEnabled Consultas são encerradas quando um erro de estouro ou divisão por zero ocorre durante a execução da consulta. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAutoClose O banco de dados é desligado corretamente e libera recursos depois da saída do último usuário. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAutoCreateStatistics O otimizador de consulta cria estatísticas de coluna única, conforme necessário, para melhorar o desempenho de consulta. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAutoCreateStatisticsIncremental As estatísticas e coluna única criadas automaticamente são incrementais quando possível. Aplica-se a: SQL Server 2014 (12.x) e posterior.

1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAutoShrink Os arquivos de banco de dados são candidatos à redução automática periódica. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsAutoUpdateStatistics Quando uma consulta usa estatísticas existentes potencialmente desatualizadas, o otimizador de consulta atualiza as estatísticas. 1: TRUE

0: FALSE

NULL: Entrada não válida

Tipo de dados base: int
IsClone O banco de dados é uma cópia somente de esquema e estatísticas de um banco de dados de usuário criado com DBCC CLONEDATABASE. Confira o artigo do Suporte da Microsoft para obter mais informações. Aplica-se ao: SQL Server 2014 (12.x) SP2 e posterior.

1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsCloseCursorsOnCommitEnabled Quando uma transação é confirmada, todos os cursores abertos serão fechados. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsDatabaseSuspendedForSnapshotBackup O banco de dados está suspenso. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsFulltextEnabled O banco de dados está habilitado para indexação de texto completo e semântica. Aplica-se a: SQL Server 2008 (10.0.x) e posterior.



1: TRUE

0: FALSE

NULL: Entrada não válida

Tipo de dados base: int

Observação: O valor dessa propriedade agora não tem nenhum efeito. Os bancos de dados de usuário são sempre habilitados para pesquisa de texto completo. Uma versão futura do SQL Server removerá essa propriedade. Não use essa propriedade em desenvolvimentos novos e modifique, assim que possível, os aplicativos que atualmente a usam.
IsInStandBy O banco de dados está online como somente leitura, com o log de restauração permitido. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsLocalCursorsDefault As declarações de cursor assumem LOCAL como padrão. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsMemoryOptimizedElevateToSnapshotEnabled As tabelas com otimização de memória são acessadas usando o isolamento SNAPSHOT quando a configuração de sessão TRANSACTION ISOLATION LEVEL é definida como READ COMMITTED, READ UNCOMMITTED ou um nível de isolamento inferior. Aplica-se a: SQL Server 2014 (12.x) e posterior.



1: TRUE

0: FALSE

Tipo de dados base: int
IsMergePublished SQL Server dá suporte à publicação da tabela de um banco de dados para replicação de mesclagem, caso a replicação tenha sido instalada. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsNullConcat O operando de concatenação nulo resulta em NULL. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsNumericRoundAbortEnabled Erros são gerados quando a perda de precisão ocorre em expressões. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsParameterizationForced A opção SET de banco de dados PARAMETERIZATION é FORCED. 1: TRUE

0: FALSE

NULL: Entrada inválida
IsQuotedIdentifiersEnabled São permitidas aspas duplas em identificadores. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsPublished Se a replicação tiver sido instalada, haverá suporte de SQL Server à publicação de tabelas do banco de dados por instantâneo ou replicação transacional. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsRecursiveTriggersEnabled O acionamento recursivo dos disparadores está habilitado. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsSubscribed O banco de dados é assinado para uma publicação. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsSyncWithBackup Este é um banco de dados publicado ou um banco de dados de distribuição e dá suporte à restauração sem romper a replicação transacional. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsTornPageDetectionEnabled O Mecanismo de Banco de Dados do SQL Server detecta operações de E/S incompletas causadas por falhas de energia ou outros problemas no sistema. 1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsVerifiedClone O banco de dados é uma cópia somente de esquema e estatísticas de um banco de dados de usuário criado usando a opção WITH VERIFY_CLONEDB de DBCC CLONEDATABASE. Confira este artigo do Suporte da Microsoft para obter mais informações. Aplica-se ao: Começando com SQL Server 2016 (13.x) SP2.



1: TRUE

0: FALSE

NULL: Entrada inválida

Tipo de dados base: int
IsXTPSupported Indica se o banco de dados dá suporte ao OLTP In-Memory. Por exemplo, a criação e uso de tabelas com otimização de memória e módulos compilados nativamente.

Específico ao SQL Server:

IsXTPSupported não depende da existência de um grupo de arquivos MEMORY_OPTIMIZED_DATA, que é necessário para a criação de objetos OLTP in-memory.
Aplica-se a: SQL Server (SQL Server 2016 (13.x) e posterior) e Banco de Dados SQL do Azure.

1: TRUE

0: FALSE

NULL: Entrada inválida, um erro ou não aplicável

Tipo de dados base: int
LastGoodCheckDbTime A data e hora do último DBCC CHECKDB bem-sucedido executado no banco de dados especificado.1 Se DBCC CHECKDB não tiver sido executado em um banco de dados, 1900-01-01 00:00:00.000 será retornado. Aplica-se a: SQL Server 2016 (13.x) a partir do SP2.
SQL Server 2017 (14.x) a partir do CU9.
SQL Server 2019 (15.x) ou posterior.
Banco de Dados SQL do Azure.

Um valor datetime

NULL: Entrada inválida

Tipo de dados base: datetime
LCID O LCID (identificador de localidade) do Windows da ordenação. Valor LCID (em formato decimal).

Tipo de dados base: int
MaxSizeInBytes Tamanho máximo do banco de dados, em bytes. Aplica-se a: Banco de Dados SQL do Azure, Azure Synapse Analytics.

Banco de Dados SQL do Azure e Azure Synapse Analytics – o valor é baseado no SLO, a menos que armazenamento adicional tenha sido comprado.

vCore – o valor está em incrementos de 1 GB até o tamanho máximo.

NULL: o banco de dados não foi iniciado

Tipo de dados base: bigint
Recuperação Modelo de recuperação de banco de dados FULL: Modelo de recuperação completa

BULK_LOGGED: Modelo registrado em log em massa

SIMPLE: Modelo de recuperação simples

Tipo de dados base: nvarchar(128)
ServiceObjective Descreve o nível de desempenho do banco de dados no Banco de Dados SQL ou Azure Synapse Analytics. Um dos seguintes valores:

Nulo: banco de dados não iniciado

Compartilhado (para edições Web/Business)

Basic

S0

S1

S2

S3

P1

P2

P3

ElasticPool

Sistema (para o banco de dados mestre)

Tipo de dados base: nvarchar(32)
ServiceObjectiveId O ID do objetivo de serviço em Banco de Dados SQL. uniqueidentifier que identifica o objetivo de serviço.
SQLSortOrder Identificação de ordem de classificação SQL Server com suporte em versões anteriores do SQL Server. 0: o banco de dados usa ordenação do Windows

>0: ID da ordem de classificação do SQL Server ID

NULL: entrada inválida ou banco de dados não foi iniciado

Tipo de dados base: tinyint
Status Status do banco de dados. ONLINE: o banco de dados está disponível para consulta.

Observação: A função pode retornar um status ONLINE enquanto o banco de dados for aberto e ainda não tiver sido recuperado. Para identificar se um banco de dados ONLINE pode aceitar conexões, consulte a propriedade Ordenação de DATABASEPROPERTYEX. O banco de dados ONLINE pode aceitar conexões quando a ordenação de banco de dados retorna um valor não nulo. Para bancos de dados Always On, consulte as colunas database_state ou database_state_desc de sys.dm_hadr_database_replica_states.

OFFLINE: o banco de dados foi colocado em offline explicitamente.

RESTORING: a restauração de banco de dados foi iniciada.

RECOVERING: a recuperação do banco de dados foi iniciada e o banco de dados ainda não está pronto para consultas.

SUSPECT: o banco de dados não foi recuperado.

EMERGENCY: o banco de dados está em uma emergência, em estado somente leitura. O acesso está restrito a membros sysadmin

Tipo de dados base: nvarchar(128)
Updateability Indica se os dados podem ser modificados. READ_ONLY: o banco de dados dá suporte a leituras de dados, mas não a modificações de dados.

READ_WRITE: o banco de dados dá suporte a leituras e a modificações de dados.

Tipo de dados base: nvarchar(128)
UserAccess Indica quais usuários podem acessar o banco de dados. SINGLE_USER: apenas um usuário db_owner, dbcreator ou sysadmin por vez

RESTRICTED_USER: apenas membros das funções db_owner, dbcreator ou sysadmin

MULTI_USER: todos os usuários

Tipo de dados base: nvarchar(128)
Versão Número de versão interno do código SQL Server com que o banco de dados foi criado. Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. Número de versão: o banco de dados está aberto.

NULL: o banco de dados não foi iniciado.

Tipo de dados base: int
ReplicaID A ID de réplica de uma réplica/banco de dados de hiperescala conectado. Aplica-se a: Banco de Dados SQL do Azure.

Retornará somente a ID de réplica de uma réplica/banco de dados de hiperescala conectado. Para saber mais sobre tipos de réplica, confira Réplicas secundárias de hiperescala.

NULL: não é um banco de dados de hiperescala ou o banco de dados não foi iniciado.

Tipo de dados base: nvarchar(128)

Observação

1 Para bancos de dados que fazem parte de um grupo de disponibilidade, LastGoodCheckDbTime retornará a data e hora do último DBCC CHECKDB bem-sucedido executado na réplica primária, independentemente da réplica da qual você está executando o comando.

Tipos de retorno

sql_variant

Exceções

Retornará NULL em caso de erro ou se um chamador não tiver permissão para exibir o objeto.

No SQL Server, um usuário só pode exibir os metadados de itens protegíveis de sua propriedade ou para os quais ele tenha permissão concedida. Essa regra significa que as funções internas que emitem metadados, como OBJECT_ID, poderão retornar NULL se o usuário não tiver permissões para o objeto. Veja Configuração de Visibilidade de Metadados para obter mais informações.

Comentários

DATABASEPROPERTYEX retorna somente uma configuração de propriedade por vez. Para exibir várias configurações de propriedade, use a exibição do catálogo sys.databases.

Exemplos

a. Recuperando o estado da opção de banco de dados AUTO_SHRINK

Este exemplo retorna o status da opção de banco de dados AUTO_SHRINK para o banco de dados AdventureWorks.

SELECT DATABASEPROPERTYEX('AdventureWorks2022', 'IsAutoShrink');  

Veja a seguir o conjunto de resultados. Isso indica que AUTO_SHRINK está desativada.

------------------  
0  

B. Recuperando a ordenação padrão de um banco de dados

Este exemplo retorna vários atributos do banco de dados AdventureWorks.

SELECT   
    DATABASEPROPERTYEX('AdventureWorks2022', 'Collation') AS Collation,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'Edition') AS Edition,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'ServiceObjective') AS ServiceObjective,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'MaxSizeInBytes') AS MaxSizeInBytes  

Veja a seguir o conjunto de resultados.

Collation                     Edition        ServiceObjective  MaxSizeInBytes  
----------------------------  -------------  ----------------  --------------  
SQL_Latin1_General_CP1_CI_AS  DataWarehouse  DW1000            5368709120  

C. Usar DATABASEPROPERTYEX para verificar a conexão com a réplica

Ao usar o Banco de Dados SQL do Azure para ler o recurso de expansão, você pode verificar se está conectado a uma réplica somente leitura ou não executando a consulta a seguir no contexto do banco de dados. Ela retornará READ_ONLY quando você estiver conectado a uma réplica somente leitura. Dessa forma, você também pode identificar quando uma consulta está em execução em uma réplica somente leitura.

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability'); 

Confira também

ALTER DATABASE (Transact-SQL)
Estados de banco de dados
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
SERVERPROPERTY (Transact-SQL)