SP_WHO2 e SP_WHOISACTIVE numa tabela temporária

Montei esse script para facilitar o filtro do resultado das procedures SP_WHO2 e SP_WHOISACTIVE: Coisa bem simples, mas que quebra o galho na hora de filtrar por uma informação específica.

FullText não encontra uma palavra específica

Eu montei um índice FullText para uma tabela de um cliente, com estas colunas: Chassi - varchar(30): chassi do veículo Motor - varchar(20): código do motor com até 17 caracteres Combustivel - varchar(20): Alcool, Gasolina, Alcool / Gasolina, Diesel DescricaoServico - varchar(max): tudo o que seria feito no veículo StatusServico - varchar(20): Aprovado, Cancelado, Reprovado, Aprovado com restrições, Conforme (usado quando o serviço é preparação do veículo para vistorias) O objetivo da consulta era identificar um atendimento, considerando uma ou mais das cinco colunas acima. A consulta original usava LIKE '%' + @variavel + '%' para todas as colunas, porque a pesquisa poderia ser, por exemplo,

Cross Apply e Outer Apply

O operador APPLY surgiu no SQL Server 2005, e permite a combinação de duas tabelas, de forma muito semelhante ao operador JOIN. A query chamada pelo operador APPLY é executada para cada linha da tabela referenciada, que foi previamente declarada na query principal. Como você deve ter imaginado, a query que trata a tabela referenciada é executada primeiro, e só então a query do operador APPLY é executada para cada linha resultante da query da tabela referenciada. O resultado final contem todas as colunas selecionadas na query principal, seguida de todas as colunas selecionadas na query do operador APPLY. O operador APPLY permite a execução de uma query para cada linha retornada pela query ass

Funções de data e hora no SQL Server

Neste post, vamos conhecer várias funções que tratam de data e hora no SQL Server. Datatypes O SQL Server possui vários datatypes para data e hora: GETDATE() e similares Estas funções retornam a data e a hora do computador no qual a instância do SQL Server é executada: Vamos ver essas funções em ação: Observe que a hora retornada pelas funções GetDate(), SysDatetime() e Current_TimeStamp é diferente do retorno de GetUTCDate(), SysUTCDateTime e SysDateTimeOffset. Por quê? O resultado destas três funções é retornado como hora UTC (Tempo Universal Coordenado). CAST e CONVERT Estas funções são utilizadas para converter um valor entre certos tipos de dados. CAST (valor AS tipo de dados) CONVERT (

Transferir arquivos de um Banco de Dados no AlwaysOn

Neste post quero documentar a transferência de arquivos de um Banco de Dados entre discos, quando esse BD está numa instância com AlwaysOn - Availability Groups (AG). O objeto deste passo a passo é ajudar você a mover os arquivos dos BDs, com o menor tempo de indisponibilidade dos Bancos de Dados. Fiz esta reorganização de arquivos usando Windows 2012 R2 cluster com instâncias de SQL Server 2014 Enterprise. O processo também funciona para as versões posteriores do SQL Server. Os nomes dos servidores neste exemplo são: Servidor principal: SQLSERVER01 Servidor secundário: SQLSERVER02 Banco de Dados: AdventureWorks2014 Availability Group: AGMELLO Vamos começar localizando os arquivos do BD nos

Converter registros de uma coluna em uma lista

Para converter o conteúdo de uma coluna com vários registros em uma lista, usamos a função STUFF. Ela é simples, mas seu resultado é poderoso. Vamos usar o BD AdventureWorks para montar um exemplo: Ao executar a consulta, temos o resultado esperado: E para quem está trabalhando com o SQL Server 2017 e posterior(es), podemos usar a função STRING_AGG(expressão,separador) Uma diferença interessante entre STRING_AGG e STUFF, é que STRING_AGG tem um limite de 8.000 caracteres no resultado retornado. Já STUFF não tem essa limitação. Por isso que, no SELECT anterior, eu filtrei por 2 cores que possuem poucos produtos. Quero agradecer ao José Diz, que me lembrou da função STRING_AGG! Valeu!!!