Filtrar coluna XML no SQL Server

Para filtrar conteúdos

Gerando conteúdo

Obter o valor da coluna do XML

Fontes:
XQuery for the SQL Server DBA: XPath
http://www.allaboutmssql.com/2012/09/xqueryxpathxmlschemaxml-index_6.html
http://stackoverflow.com/questions/19940566/xquery-value-value-requires-a-singleton-or-empty-sequence-found-oper/22711296

Procurar conteúdo dentro de uma view / procedure do SQL Server

Pesquisar conteúdo dentro da view

Pesquisar conteúdo dentro da procedure

Pesquisar conteúdo dentro de uma trigger

Executar o mesmo script em várias bases no SQL Server

Hoje precisei pesquisar um determinado registro em várias no SQL Server mas não queria ter que ir no SQL Management Studio base a base para executar o script, até porque em algumas bases pode não existir as tabelas necessárias para executar o meu script.

Para facilitar esse processo repetitivo existe a proc sp_MSforeachdb que executa o script em todas as bases.

Descrevendo o trecho de código veremos que primeiramente iremos declarar uma variável para armazenar o comando a ser executado:
DECLARE @Command VARCHAR(1000)

Logo após iremos armazenar o script que desejamos executar na variável.

E por fim executamos o script no banco.
EXEC sp_MSforeachdb @Command

Filtrar registros

Muitas vezes necessito trazer no resultado do select apenas as databases que possuem um determinado registro e para isso utilizo o script abaixo.

Pesquisar procedure que não contém determinado campo

Atualização (19/10/2016) – Filtrar registros
Atualização (10/11/2016) – Pesquisar procedure que não contém determinado campo

LinqToSQL converter objeto para ToString

Hoje estava trabalhando no projeto da empresa onde eu precisava mostrar na tela os dados da fatura de utilização do sistema.
O problema: No banco de dados o período da fatura está em uma campo do tipo datetime, i.e. armazena a data e hora, mas para mostrar na tela eu preciso apenas mostrar a data no formato mês/ano e como fazer para retornar do banco esse formato?

Como utilizamos o Entity Framework para fazer o acesso aos dados, utilizamos os recursos do LinqToSQL.

Continue lendo “LinqToSQL converter objeto para ToString”

Script para remover todas as tabelas do SQL Server

Quando estamos em desenvolvendo um projeto grandes, e.g. ERP precisamos muitas vezes testar script de criação/atualização do base de dados para poder entregar ao nosso cliente.

Para resolver esse problema poderia ser excluído o banco de dados e depois recriado, mas para isso precisamos mexer com a questão de permissão de acesso ao banco e muitas vezes não temos essa permissão no servidor do cliente, por esse motivo através de muita pesquisa fiz o comando abaixo para excluir todas as tabelas e restrições do banco de dados onde está sendo executado o comando.

Continue lendo “Script para remover todas as tabelas do SQL Server”

Verificar a existência de uma coluna no SQL Server

Microsoft SQL Server

Um dos grandes problemas para atualizar uma base de dados através de forma automatizada é com o problema dos campos na base de dados, no SQL Server provemos do utilitário SQL Command que provê acesso ao ao SGDB via linha de comando e nos auxiliar a realizar essa tarefa.

Nos scripts de atualização sempre faço a verificação da existência do campo na base de dados antes de criar o campo, abaixo temos um exemplo de como verificar a existência do campo através de uma consulta a tabela do Sql Server que armazena todas as colunas existentes:

Outro forma de verificar a existência da coluna é através do comando COL_LENGTH que retorna a quantidade de bytes que o campo utiliza para armazenar os dados.

Caso a coluna pelo qual foi executada a pesquisa for do tipo VARCHAR(MAX) o resultado do COL_LENGTH será -1.
Observação: Retorna NULL em caso de erro ou se o usuário que estiver executando a query não tiver permissão para exibir o objeto.

Caso desejar adicionar uma descrição na coluna recentemente criada poderemos executar a proc abaixo: