“Login failed for user ‘NT Authority\ANONYMOUS LOGON’ ” ao criar um Linked Server

Ao criar um Linked Server entre dois servidores com SQL Server 2008, via Windows Authentication, me deparei com o erro abaixo: Dando uma Googleada investigada, li que poderia ser por causa da delegação via Kerberos não estar funcionando. O nome do “cara”: Kerberos constrained delegation. ...

31 jul. 2015 · 2 minutos · 239 palavras · Logan D. Merazzi

Usando o Some | Any | All

Olhando os operadores lógicos do SQL Server (link), me deparei com algo curioso, que até então não tinha visto: os operadores Some, Any e All que, vejam só, está disponível desde do SQL Server 2008. #facepalm O objetivo deles: Comparar um valor escalar (lembrem-se disso) com os valores de um dataset (a.k.a. subquery). O ALL validará se TODOS os valores do dataset correspondem ao valor comparado. O SOME e o ANY são equivalentes, eles retornaram TRUE se algum dos valores do dataset corresponder à comparação. Se você ouviu um IN na explicação, pense nele como um IN com esteroides para um valor escalar, uma vez que você pode validar com os operadores =, <, >, <>, etc. ...

10 jul. 2015 · 2 minutos · 388 palavras · Logan D. Merazzi

Escapando caracteres usando o ESCAPE

Pessoal, aproveitando para tirar um pouco a poeira, uma dica rápida que surgiu no trabalho hoje… Como sabemos (sabemos, né?), temos alguns caracteres que são chamados de coringas, para facilitar a busca por um padrão. Não vou explicar aqui o que cada um faz, mas eles são: %, _ , [], [^] O problema: Quero pesquisar na minha tabela por todas as linhas que comecem com [OK]. Porém, se eu fizer um simples WHERE Coluna like ‘[OK]%’ (um exemplo esdrúxulo, mas que mantém o fluxo do raciocínio), a consulta vai me retornar todas as linhas que comecem com O ou com K e o que houver mais nesse registro, o que não é bem o que queremos. ...

07 jul. 2015 · 1 minuto · 202 palavras · Logan D. Merazzi

Dicionário de Dados – A Exclusão.

Um dos meus papéis dentro da empresa onde trabalho é o de ser chato e verificar os scripts que são enviados antes de entrar em produção. Uma parte das verificações é garantir que o dicionário de dados esteja o mais atualizado possível para que consigamos entender o objetivos das tabelas, colunas, constraints, etc. Para inserir uma propriedade em um objeto, deve ser utilizada a procedure sp_addextendedproperty. Para remover: sp_dropextendedproperty. E para atualizar: sp_updateextendedproperty. Não vou entrar no mérito de como usar, pois o BOL (Books On Line – RTFM!) explica bem como usar e os parâmetros necessários. ...

19 mar. 2015 · 4 minutos · 843 palavras · Logan D. Merazzi

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