Artigo SQL Magazine 32 - Mão na massa: Dicas SQL Server

Nessa edição exploraremos diferentes tarefas executadas por um DBA através de dicas praticas sobre diversos assuntos do dia-a-dia da administração de bando de dados com SQL Server.

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.
Os artigos dessa edição estão disponíveis somente através do formato HTML.

Clique aqui para ler todos os artigos desta edição

Mão na massa: Dicas SQL Server

 

Nessa edicao exploraremos diferentes tarefas executadas por um DBA através de dicas praticas sobre diversos assuntos do dia-a-dia da administração de bando de dados com SQL Server.

Bom proveito!

 

Como verificar se um arquivo existe em disco com T-SQL]

para verificar se um arquivo existe no sistema operacional via comando T-SQL, utilize a procedure SP_MSGET_FILE_EXISTANCE como apresentado na Listagem 1.

 

Listagem 1. Utilizando a procedure SP_MS_GET_FILE_EXISTANCE.

DECLARE @res int

EXEC máster..sp_MSget_fiel_existence

  ‘C:\Program Files\ Microsoft

      SQLever\MSSQL\Binn\SQLServr.exe’, @res out

if @res = 0

   print ‘Arquivo Inexistente’

else

   print ‘O arquivo existe!’

-----------------------------------------------------------

O arquivo existe!

 

Como verificar se uma tabela temporária existe

Tabelas temporárias são bastante utilizadas em batchs e procedures. A vida útil de uma tabela temporária esta limitada ao processo onde ocorreu sua criação:se a tabela foi criada numa procedure, será automaticamente eliminada com o desfecho da procedure, o mesmo vale para batchs. Acontece que muitas vezes em testes de depuração no Query Analyzer, trabalhamos com os mesmos nomes de tabelas temporárias e, não raro nos deparamos com erros do tipo ‘There is another object named ... in the database’, indicando que a tabela temporária já existe e não pode ser criada novamente.

No código da Listagem 2, a existência da tabela #temp é confirmada antes do comando de criação. Se a tabela já existir, será dropada.

 

Listagem 2. Verificando se uma tabela temporária existe.

if object_id(‘tempdb..#temp’) is not null drop table

#temp

create table # temp (codigo int, descry varchar(20))’

-----------------------------------------------------------

The command(s) completed successfully.

 

Update inteligente

Imagine o seguinte cenário: você possui uma tabela para controle da numeração de notas fiscais chamada controle_nf. Essa tabela possui somente uma linha e uma coluna chamada nro_nf. Sempre que uma nota é emitida, a rotina devera obter o próximo numero de nota fiscal valido a partir dessa tabela, incrementando uma unidade na numeração atual e salvando essa posição.

Bem, precisamos efetuar um UPDATE incrementando uma unidade na numeração da nota e depois recuperar esse valor. Uma possibilidade seria efetuar o UPDATE e depois executar um comando SELECT para recuperar o valor recém atualizado. O problema dessa solução é que podem ser geradas duplicidades e/ou deadlocks se o nível de isolamento não for adequado. Uma solução bastante simples e eficiente é atualizar uma variável durante o comando UPDATE, como ilustrado na Listagem 3.

 

Listagem 3. Update atualizando variável.

set nocount on

 

-- criação da tabela controle_nf

"

[...] continue lendo...

Artigos relacionados