Powerview: Como ordenar uma coluna, que não seja por ordem alfabética.

Um dos desafios que tive recentemente (e bem básico, diga-se de passagem, para uma pessoa mais experiente), foi a necessidade de ordenar uma tabela, mas que não poderia seguir a ordem alfabética padrão do PowerView. Um exemplo clássico: Uma tabela onde eu tenho os meses de um ano e eu preciso ordenar pelo nome do mês, mas seguindo a sequência dos meses (Jan, Fev, Mar, etc.). A questão: Se eu simplesmente ordenar pelo nome do mês, o resultado que eu vou obter será: Abril, Agosto, Dezembro, Fevereiro, Janeiro, Julho, Junho, Maio, Março, Novembro, Outubro, Setembro. ...

05 nov. 2014 · 1 minuto · 196 palavras · Logan D. Merazzi

Qual o percentual de andamento do meu Backup / Restore?

Quando você executa um Backup / Restore pelo SSMS, você tem facilmente o percentual de andamento indo na aba “Messages”. E quando você executa, por exemplo, via powershell e ele fica lá travado no processo e não te informa nada? Nesses casos, você pode rodar a consulta abaixo: SELECT start_time, percent_complete, session_id, status, command FROM sys.dm_exec_requests WHERE command In ( 'RESTORE DATABASE', 'BACKUP DATABASE' ) Com isso, você saberá o percentual de execução do teu backup: ...

10 jun. 2014 · 1 minuto · 77 palavras · Logan D. Merazzi

Erro ao instalar o SQL Server Data Tools no Visual Studio 2012

Dica rápida: Ao instalar os projetos de BI do SQL Server Data Tools no Visual Studio 2012, apareceu o seguinte erro: Rule "Same architecture installation" failed. The CPU architecture of installing feature(s) is different than the instance specified. To continue, add features to this instance with the same architecture. O executável tem no nome o ‘x86’ então achei que eu tinha baixado o arquivo errado, mas na página diz que ele suporta a versão ‘x64’. ...

23 mar. 2014 · 1 minuto · 206 palavras · Logan D. Merazzi

CROSS APPLY com FOR XML, dentro de um FOR XML

Esses dias surgiu uma questão aqui no trabalho que acho que vale o registro… Me questionaram sobre a possibilidade de concatenar o resultado de diversas linhas em uma única e, imediatamente, me veio o bom e velho FOR XML PATH(”) em mente. O problema é que o resultado deveria ser concatenado de acordo com o resultado proveniente de uma outra tabela, algo como: Status1 (Codigo1, Codigo2, Codigo3) Status 2 (Codigo4) Status 3 (Codigo5) A criação da estrutura seria algo assim: ...

19 mar. 2014 · 4 minutos · 669 palavras · Logan D. Merazzi

Descobrindo quais tabelas estão em quais filegroups

Alguma vez você deve ter se perguntado: “Como eu sei em qual filegroup está essa tabela?” Existe uma ideia de que a hierarquia se dá da seguinte forma: Instância -> Database -> Filegroup -> Tabela -> Dados Porém está faltando um item aí que acaba passando despercebido muitas vezes… Os índices! Ele é quem define onde os dados de uma tabela serão armazenados. O índice cluster é o responsável por organizar a tabela fisicamente. Seria conveniente dizer que ele “É” os dados da sua tabela (falar que os dados estão dentro do índice cluster me soa errado, então deixemos a frase estranha mesmo 🙂 ). Então, na prática, ao criar o seu índice cluster, você estará especificando o filegroup onde os dados serão armazenados. ...

23 out. 2013 · 3 minutos · 599 palavras · Logan D. Merazzi

Compatibility Views & Catalog Views

Alguma vez você já parou para pensar em como as functions, procedures, constraints, etc ficam armazenadas no banco? Onde fica a definição dos objetos? No SQL Server 2000 existia uma tabela de sistema chamada syscomments. Essa tabela retornava 1 linha a cada 4000 caracteres que tivesse a definição do objeto. ...

18 jul. 2013 · 2 minutos · 307 palavras · Logan D. Merazzi

Função Escalar x Table Valued Function

Muito se fala na internet sobre como as funções escalares são terríveis e que devemos evitar o uso a todo o custo… Eu gostaria de mostrar o porquê: Vejam o seguinte script abaixo (um procedimento muito utilizado por aí: a utilização de uma função escalar que trata “N” casos e retorna o valor desejado). Primeiro, a criação da tabela e inserção dos dados: CREATE TABLE NotaFiscal (Cod int identity primary key, Pessoa varchar(20), Valor decimal (15,2), Data date) CREATE INDEX Ncl_NotaFiscal ON NotaFiscal (Data) INCLUDE (Pessoa, Valor) GO -- Inserindo 10 notas no período de 500 dias (5000 notas). INSERT INTO NotaFiscal SELECT 'Logan', 100, DATEADD(DD, Number, '2012-12-31') from Numbers WHERE Number < 500 GO 10 GO CREATE FUNCTION CalculaTributos (@Codigo int, @Tipo char(1)) Returns decimal(15,2) AS BEGIN DECLARE @valor decimal(15,2) SELECT @Valor = CASE @tipo WHEN 'a' then valor * 0.1 WHEN 'b' then valor * 0.3 WHEN 'c' then valor * 0.5 END FROM NotaFiscal RETURN @valor END; ...

01 jul. 2013 · 3 minutos · 509 palavras · Logan D. Merazzi

3º Encontro do grupo SQLServerRS de 2013 – Scripts

Pessoal, Antes de qualquer coisa, gostaria de agradecer ao grupo (pela enésima vez) a oportunidade de me permitir palestrar neste 3º encontro. O encontro na Ftec foi muito bom, primeiramente com o Marcus Vinícius falando sobre a comunidade SQL Server e o PASS. Após, eu assumi o projetor e falei sobre Snapshot no SQL Server. ...

09 mai. 2013 · 1 minuto · 164 palavras · Logan D. Merazzi

3º Encontro de 2013 do Grupo SQL Server RS – Comigo!

Pessoal, com muita honra e orgulho foi convidado pelo Chapter Leader do grupo SQL Server RS, Marcus Vinícius Bittencourt para palestrar no próximo encontro do grupo. Pois bem, o encontro será realizado na FTEC (Caxias do Sul – RS), no dia 04/05/2013 às 14 horas e o assunto será: Snapshot Database: o que é, pra que serve e como usar. Fica aberto o convite à todos! Até!

29 abr. 2013 · 1 minuto · 67 palavras · Logan D. Merazzi

SQL Server + Volume Shadow Copy = Sem backup diferencial.

Após implementar o recurso de envio de e-mails com os erros de backup do SQL Server, notei que o backup diferencial não estava sendo executado, apresentando o seguinte erro: Cannot perform a differential backup for database “MyDatabase”, because a current database backup does not exist. Perform a full database backup by reissuing BACKUP DATABASE, omitting the WITH DIFFERENTIAL option. [SQLSTATE 42000] (Error 3035) BACKUP DATABASE is terminating abnormally. [SQLSTATE 42000] (Error 3013). The step failed. ...

24 abr. 2013 · 2 minutos · 383 palavras · Logan D. Merazzi