Compartilhar via


Bloqueando e desbloqueando bancos de dados (XMLA)

Você pode bloquear e desbloquear bancos de dados usando, respectivamente, os comandos Bloquear e Desbloquear no XML para Análise (XMLA). Normalmente, outros comandos do XMLA bloqueiam e desbloqueiam objetos automaticamente quando necessário para concluir o comando durante a execução. Você pode bloquear ou desbloquear explicitamente um banco de dados para executar vários comandos em uma única transação, como um comando do Lote , impedindo que outros aplicativos confirmem uma transação de gravação no banco de dados.

Bloqueando bancos de dados

O comando Bloquear bloqueia um objeto, para uso compartilhado ou exclusivo, dentro do contexto da transação ativa no momento. Um bloqueio em um objeto impede a confirmação de transações até que o bloqueio seja removido. O Microsoft SQL Server SQL Server Analysis Services dá suporte a dois tipos de bloqueios, bloqueios compartilhados e bloqueios exclusivos. Para obter mais informações sobre os tipos de bloqueio compatíveis com SQL Server Analysis Services, consulte Elemento mode (XMLA).

SQL Server Analysis Services permite que apenas bancos de dados sejam bloqueados. O elemento Object deve conter uma referência de objeto a um banco de dados SQL Server Analysis Services. Se o elemento Object não for especificado ou se o elemento Object se referir a um objeto diferente de um banco de dados, ocorrerá um erro.

Importante

Somente administradores de banco de dados ou administradores de servidor podem emitir explicitamente um comando Lock .

Outros comandos emitem implicitamente um comando Lock em um banco de dados SQL Server Analysis Services. Qualquer operação que lê dados ou metadados de um banco de dados, como qualquer método Discover ou um método Execute executando um comando Statement , emite implicitamente um bloqueio compartilhado no banco de dados. Qualquer transação que confirme alterações em dados ou metadados em um objeto em um banco de dados SQL Server Analysis Services, como um método Execute executando um comando Alter, emite implicitamente um bloqueio exclusivo no banco de dados.

Desbloqueando objetos

O comando Unlock remove um bloqueio estabelecido dentro do contexto da transação ativa no momento.

Importante

Apenas administradores de banco de dados ou de servidor podem emitir um comando Unlock explicitamente.

Todos os bloqueios são mantidos no contexto da transação atual. Quando a transação atual é confirmada ou revertida, todos os bloqueios definidos dentro da transação são liberados automaticamente.

Consulte Também

Elemento Lock (XMLA)
Elemento Unlock (XMLA)
Desenvolvendo com XMLA no Analysis Services