Compartilhar via


DATABASEPROPERTYEX (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Banco de dados SQL no Microsoft Fabric Preview

Para um banco de dados especificado no SQL Server, a DATABASEPROPERTYEX 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

base de dados

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. Ele retornará NULL para todas as propriedades se receber um nome de banco de dados diferente.

propriedade

É 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 tiver sido iniciado, chamará para DATABASEPROPERTYEX retornar NULL se DATABASEPROPERTYEX recuperar esses valores por acesso direto ao banco de dados, em vez de recuperar metadados. Um banco de dados com AUTO_CLOSE definido como ON, ou de outra forma offline, é definido como "não iniciado".

Propriedade Descrição Valor retornado
Collation

Tipo de dados: nvarchar(128)
O nome da ordenação padrão para o banco de dados. Nome da ordenação. Se NULLo banco de dados não for iniciado.
ComparisonStyle

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

- 1: ignorar maiúsculas e minúsculas
- 2: ignorar acento
- 65536: ignorar kana
- 131072: ignorar largura

Por exemplo, o padrão é 196609 o resultado da combinação do caso de ignorar, ignorar kana e ignorar as opções de largura.
Retorna o estilo de comparação.

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

Tipo de dados: nvarchar(64)
A camada de edição ou de serviço do banco de dados. - General Purpose
- Business Critical
- Basic
- Standard
- Premium
- System (para master banco de dados)
- FabricSQLDB: banco de dados SQL no Microsoft Fabric Preview
- NULL: o banco de dados não foi iniciado.

Aplica-se a: Banco de Dados SQL do Azure, Banco de Dados SQL no Microsoft Fabric Preview, Azure Synapse Analytics.
IsAnsiNullDefault

Tipo de dados: int
O banco de dados segue as regras ISO para permitir NULL valores. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsAnsiNullsEnabled

Tipo de dados: int
Todas as comparações com uma NULL avaliação como desconhecida. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsAnsiPaddingEnabled

Tipo de dados: int
As cadeias de caracteres são convertidas na mesma largura antes da comparação ou inserção. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsAnsiWarningsEnabled

Tipo de dados: int
Mensagens de erro ou de aviso do SQL Server quando ocorrem condições de erro padrão. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsArithmeticAbortEnabled

Tipo de dados: int
Consultas são encerradas quando um erro de estouro ou divisão por zero ocorre durante a execução da consulta. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsAutoClose

Tipo de dados: int
O banco de dados é desligado corretamente e libera recursos depois da saída do último usuário. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsAutoCreateStatistics

Tipo de dados: int
O otimizador de consulta cria estatísticas de coluna única, conforme necessário, para melhorar o desempenho de consulta. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsAutoCreateStatisticsIncremental

Tipo de dados: int
As estatísticas e coluna única criadas automaticamente são incrementais quando possível. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida

aplica-se a: SQL Server 2014 (12.x) e versões posteriores.
IsAutoShrink

Tipo de dados: int
Os arquivos de banco de dados são candidatos à redução automática periódica. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsAutoUpdateStatistics

Tipo de dados: int
Quando uma consulta usa estatísticas existentes potencialmente desatualizadas, o otimizador de consulta atualiza as estatísticas. - 1:Verdadeiro
- 0:Falso
- NULL: entrada não válida
IsClone

Tipo de dados: int
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. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida

Aplica-se a: SQL Server 2014 (12.x) SP2 e versões posteriores.
IsCloseCursorsOnCommitEnabled

Tipo de dados: int
Quando uma transação é confirmada, todos os cursores abertos são fechados. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsDatabaseSuspendedForSnapshotBackup

Tipo de dados: int
O banco de dados está suspenso. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsFulltextEnabled

Tipo de dados: int
O banco de dados está habilitado para indexação de texto completo e semântica. - 1:Verdadeiro
- 0:Falso
- NULL: entrada não válida

Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores.

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 um novo trabalho de desenvolvimento e modifique os aplicativos que atualmente usam essa propriedade o mais rápido possível.
IsInStandBy

Tipo de dados: int
O banco de dados está online como somente leitura, com o log de restauração permitido. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsLocalCursorsDefault

Tipo de dados: int
Declarações de cursor padrão para LOCAL. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsMemoryOptimizedElevateToSnapshotEnabled

Tipo de dados: int
As tabelas com otimização de memória são acessadas usando SNAPSHOT isolamento, quando a configuração TRANSACTION ISOLATION LEVEL da sessão é definida como READ COMMITTED, READ UNCOMMITTEDou um nível de isolamento inferior. - 1:Verdadeiro
- 0:Falso

aplica-se a: SQL Server 2014 (12.x) e versões posteriores.
IsMergePublished

Tipo de dados: int
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:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsNullConcat

Tipo de dados: int
O operando de concatenação nula produz NULL. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsNumericRoundAbortEnabled

Tipo de dados: int
Erros são gerados quando a perda de precisão ocorre em expressões. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsOptimizedLockingOn

Tipo de dados: int
O bloqueio otimizado está habilitado para o banco de dados. - 1:Verdadeiro
- 0:Falso
- NULL: não disponível

Aplica-se a: Versão prévia do SQL Server 2025 (17.x) e versões posteriores, Banco de Dados SQL do Azure,AUTD da Instância Gerenciada de SQL do Azure e Banco de Dados SQL no Microsoft Fabric Preview.
IsParameterizationForced

Tipo de dados: int
PARAMETERIZATION a opção de banco de dados SET é FORCED. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsQuotedIdentifiersEnabled

Tipo de dados: int
São permitidas aspas duplas em identificadores. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsPublished

Tipo de dados: int
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:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsRecursiveTriggersEnabled

Tipo de dados: int
O acionamento recursivo dos disparadores está habilitado. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsSubscribed

Tipo de dados: int
O banco de dados é assinado para uma publicação. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsSyncWithBackup

Tipo de dados: int
O banco de dados é um banco de dados publicado ou um banco de dados de distribuição e dá suporte a uma restauração que não interrompe a replicação transacional. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsTornPageDetectionEnabled

Tipo de dados: int
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:Verdadeiro
- 0:Falso
- NULL: entrada inválida
IsVerifiedClone

Tipo de dados: int
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. - 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida

Aplica-se a: SQL Server 2016 (13.x) SP2 e versões posteriores.
IsXTPSupported

Tipo de dados: int
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 é independente da existência de qualquer MEMORY_OPTIMIZED_DATA grupo de arquivos, o que é necessário para criar In-Memory objetos OLTP.
- 1:Verdadeiro
- 0:Falso
- NULL: entrada inválida, um erro ou não aplicável

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL do Azure.
LastGoodCheckDbTime

Tipo de dados: datetime
A data e a hora da última execução bem-sucedida DBCC CHECKDB no banco de dados especificado. Se DBCC CHECKDB não tiver sido executado em um banco de dados, 1900-01-01 00:00:00.000 será retornado. Para bancos de dados que fazem parte de um grupo de disponibilidade, LastGoodCheckDbTime retorna a data e a hora do último bem-sucedido DBCC CHECKDB executado na réplica primária, independentemente de qual réplica você executou o comando. NULL: entrada inválida

Aplica-se a: SQL Server 2016 (13.x) SP2, SQL Server 2017 (14.x) CU9, SQL Server 2019 (15.x) e versões posteriores, Banco de Dados SQL do Azure e banco de dados SQL no Microsoft Fabric Preview.
LCID

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

Tipo de dados: bigint
Tamanho máximo do banco de dados, em bytes. - Banco de Dados SQL do Azure e Análise do Azure Synapse: o valor é baseado no SLO, a menos que o armazenamento extra 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

Aplica-se a: Banco de Dados SQL do Azure, banco de dados SQL no Microsoft Fabric Preview e Azure Synapse Analytics.
Recovery

Tipo de dados: nvarchar(128)
Modelo de recuperação de banco de dados. - FULL: modelo de recuperação completa
- BULK_LOGGED: modelo em log em massa
- SIMPLE: modelo de recuperação simples
ServiceObjective

Tipo de dados: nvarchar(32)
Descreve o nível de desempenho do banco de dados no Banco de Dados SQL, no Banco de Dados SQL no Microsoft Fabric Preview ou no Azure Synapse Analytics. Um dos seguintes valores:

- NULL: banco de dados não iniciado
- Shared (para edições Web/Business)
- Basic
- S0
- S1
- S2
- S3
- P1
- P2
- P3
- ElasticPool
- System (para master banco de dados)
- FabricSQLDB: banco de dados SQL no Microsoft Fabric Preview
ServiceObjectiveId

Tipo de dados: uniqueidentifier
O ID do objetivo de serviço em Banco de Dados SQL. ID do objetivo do serviço.
SQLSortOrder

Tipo de dados: tinyint
Identificação de ordem de classificação SQL Server com suporte em versões anteriores do SQL Server. - 0: o banco de dados usa a ordenação do Windows

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

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

Tipo de dados: nvarchar(128)
Status do banco de dados. ONLINE: o banco de dados está disponível para consulta.

Nota: A função pode retornar um status de enquanto o banco de ONLINE dados é aberto e ainda não foi recuperado. Para identificar se um ONLINE banco de dados pode aceitar conexões, consulte a Collation propriedade de DATABASEPROPERTYEX. O ONLINE banco de dados pode aceitar conexões quando a ordenação de banco de dados retorna um valor não nulo. Para bancos de sys.dm_hadr_database_replica_statesdados Always On, consulte as database_state colunas de database_state_desc .

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

- RESTORING: a restauração do 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 se recuperou.

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

Tipo de dados: nvarchar(128)
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 modificações de dados.
UserAccess

Tipo de dados: nvarchar(128)
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: somente membros de funções db_owner, dbcreator ou sysadmin

- MULTI_USER: todos os usuários
Version

Tipo de dados: int
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 da versão: o banco de dados está aberto.

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

Tipo de dados: nvarchar(128)
A ID da réplica de um banco de dados/réplica de hiperescala conectado. Retorna apenas a ID da réplica de um banco de dados/réplica de Hiperescala conectado. Para saber mais sobre tipos de réplica, consulte réplicas secundárias da Hiperescala.

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

aplica-se a: Hiperescala do Banco de Dados SQL do Azure.

Tipos de retorno

sql_variant

Exceções

Retorna NULL com 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 podem ser retornadas NULL se o usuário não tiver permissões no objeto. Para obter mais informações, consulte a configuração de visibilidade de metadados.

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

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2022 ou AdventureWorksDW2022, que você pode baixar na página inicial Microsoft SQL Server Samples and Community Projects.

a. Recuperar o status da opção de banco de dados AUTO_SHRINK

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

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

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

0

B. Recuperar 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 recurso de expansão do Banco de Dados SQL do Azure, 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. Ele retorna READ_ONLY quando você está 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');