Como interceptar msg de erro do SQL na sproc sp_dboption

SQL Server

13/10/2004

Boa tarde,

Estou utilizando a sproc sp_dboption para alterar o status da base de dados para single user. Meu comando seria:

declare @retorno int
EXEC @retorno = sp_dboption ´base_de_dados´, ´single user´, ´true´
IF @retorno = 1
BEGIN
mensagem de erro para o usuario
END

O meu problema é que o SQL SERVER apresenta a sua própria mensagem de erro:
=====================
Server: Msg 5070, Level 16, State 2, Line 1
Database state cannot be changed while other users are using the database ´base_de_dados´
Server: Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
sp_dboption command failed.
=====================

Existe alguma forma de bloquear a mensagem do SQL SERVER?

Pesquisei alguma coisa com os Trace Flags, mas não encontrei o que estou procurando.

Sds
Roberto

[color=green:7aa6efc3bc][b:7aa6efc3bc]Bloqueado(Saviski)[/b:7aa6efc3bc][/color:7aa6efc3bc]

[b:7aa6efc3bc][color=red:7aa6efc3bc]Título editado pelo Moderador (AZ) - Removido: ´Como´[/color:7aa6efc3bc][/b:7aa6efc3bc]


Robertolucio

Robertolucio

Curtidas 0

Respostas

Marcus.magalhaes

Marcus.magalhaes

13/10/2004

Boa tarde Roberto.

Realmente não dá para vc inibir este tipo de mensagem, pois parte-se do princípio que isso será feito sempre através de uma das ferramentas do SQL (EM, Query Analyzer ou isql).
Se vc usar o ALTER DATABASE o processo fica locado caso exista alguém utilizando o db.

A melhor forma de vc colocar uma base em single user é forçando, ou seja, derrubando todas as conexões existentes. Para isso vc pode criar um cursor que contenha todos os spid´s das conexões que estão utilizando o db, porem isso deve ser feito com cuidado para evitar que gere algum estresse, por exemplo, utilizar janelas de manutenção previamente agendadas, assim vc terá respaldo para matar qq conexão existente no db.

Att,


GOSTEI 0
Gandalf.nho

Gandalf.nho

13/10/2004

[b:f582d6e6a5][color=red:f582d6e6a5]Notificação de Infração às Regras de Conduta :[/color:f582d6e6a5][/b:f582d6e6a5]

Tópico duplicado
[url]http://delphiforum.icft.com.br/forum/viewtopic.php?t=53056[/url]


Para maiores esclarecimentos pode mandar-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=8378]Mensagem Particular[/url].


GOSTEI 0
POSTAR