”Snippets” são pequenos trechos de código reutilizável que é sempre bom termos à mão, em caso de esquecimento! Eles normalmente resolvem um problema bem específico – acertam “na mosca”.
Listo abaixo então alguns snippets de Sql – todos utilizados no SqlServer, por ser o banco
que mais tenho usado atualmente:
Listo abaixo então alguns snippets de Sql – todos utilizados no SqlServer, por ser o banco
que mais tenho usado atualmente:
Formatar data (dd/mm/aaaa):
SELECT CONVERT(CHAR, GETDATE(), 103)
Mudar o dia de uma data (ex.: dia 10):
UPDATE tabela SET DATAATUALIZACAO = DATEADD(D, 10-DATEPART(DAY, campo_data), campo_data)
Truncar uma data (remover o horário):
SELECT DATEADD(d, DATEDIFF(d, 0, GETDATE()), 0)
OU
SELECT CAST(FLOOR(CAST(campo_data AS DECIMAL(12, 5))) AS DATETIME) FROM tabela
Ano é bissexto?
SELECT CASE DATEPART(d, DATEADD(d, 1, (CAST((CONVERT(VARCHAR(4), @ano) + '0228') AS DATETIME)))) WHEN 29 THEN 1 ELSE 0 END
Concatenar linhas de um campo (exibir s/ quebras de linha):
SELECT REPLACE(campo, CHAR(13), ' ') FROM tabela
Remover quebras de linha de um campo:
UPDATE tabela SET campo = REPLACE(campo, CHAR(13), ' ') FROM tabela
Encontrar registros duplicados:
SELECT campo, COUNT(*) Qtde FROM tabela GROUP BY campo HAVING COUNT(*) > 1
OU
SELECT campo_comparar, campo_id FROM tabela WHERE campo_comparar IN ( SELECT campo_comparar FROM tabela GROUP BY campo_comparar HAVING COUNT(*) > 1 ) ORDER BY campo_comparar
Excluir registros duplicados:
DELETE X FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY campo_comparar ORDER BY campo_id) AS SEQ FROM tabela ) X WHERE SEQ > 1
Fazer backup:
BACKUP DATABASE NOME_BANCO_DADOS TO DISK = caminho WITH CHECKSUM, DESCRIPTION = description
Verificar se uma tabela existe:
IF EXISTS (SELECT 1 FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[tabela]') AND TYPE IN (N'U')) PRINT 'Ufa, a tabela existe!' ELSE PRINT 'Ops...'
Obtendo informações sobre uma tabela:
SELECT ORDINAL_POSITION ,COLUMN_NAME ,DATA_TYPE ,CHARACTER_MAXIMUM_LENGTH ,IS_NULLABLE ,COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tabela' ORDER BY ORDINAL_POSITION ASC;
Você sabia:
Que a luz do sol leva aproximadamente 8 minutos para chegar à terra?