Short Scripts – Junho 2021

Neste segundo post de 2021 da sessão Short Scripts você vai encontrar scripts relacionados com a cláusula Values aplicada aos comandos Select e Insert.

Olá pessoal, bom dia…

Seja bem-vindo, em mais um post da sessão Short Scripts, o segundo post desta sessão em 2021 e o de número 44 em seu total.

Estamos terminando a primeira metade de 2021, os frio já esta chegando, nossa eu adoro o inverno.

Mantendo a tradição estou retornando com mais um conjunto dos “curtos ou pequenos” scripts catalogados e armazenados em minha biblioteca pessoal de códigos relacionados ao Microsoft SQL Server e sua fantástica linguagem de desenvolvimento Transact-SQL.

Como promessa é dívida e deve ser cumprida “ou melhor” compartilhada, vou pagar a minha mais uma vez hoje, feita no encerramento do post anterior publicado no mês de janeiro deste ano, se por acaso você ainda não acessou o mesmo, calma, fique tranquilo, tudo vai dar certo, no encerramento deste post você terá a sua disposição a relação das últimas cinco publicações relacionadas aos Short Scripts.

Vamos caminhar mais um pouco então……..

O post de hoje

Para este post, não vou exatamente compartilhar um conjunto variado de scripts que foram catalogados nos últimos meses, ao contrário, vou disponibilizar um conteúdo que foi elaborado hoje, dedicado de forma única e exclusiva a demonstrar como podemos utilizar a clásula Values relacionada com os comandos Insert e Select Microsoft SQL Server.

Em conjunto com o uso de forma de execução da cláusula Values, os exemplos de código aqui compartilhados se relacionam com os seguintes assuntos:

  • Calculo Fatorial Numérico;
  • Comando Distinct;
  • Comando Select;
  • Comando Top;
  • Default Values;
  • Função Convert;
  • Função DateAdd;
  • Função Replicate;
  • Operador Cross Apply;
  • Row Constructor;
  • Set Identity_Insert e
  • Tabela de Sistema SPT_Values.

Chegou a hora, mãos nos teclados, a seguir apresento os códigos e exemplos selecionados para o Short Script – Junho 2021. Vale ressaltar que todos os scripts publicados nesta sessão foram devidamente testados, mas isso não significa que você pode fazer uso dos mesmo em seu ambiente de produção, tenha todo cuidado possível para evitar maiores problemas.

Fique à vontade para compartilhar, comentar e melhorar cada um destes códigos.


Short Scripts

— Short Script 1  –  Cláusula Values com conjunto com o comandos Top —
SELECT TOP 1 answer = SomeName
FROM (VALUES (‘Ebenezer Scrooge’, ‘A Christmas Carol’, ‘Old’, ‘Fiction’, ‘London’),
(‘Dumbledore’, ‘Harry Potter and the Sorcerer”s Stone’, ‘Very Old’, ‘Fantasy’, ‘Hogwarts’),
(‘Frosty’, ‘Frosty The Snowman’, ‘Infant’, ‘Animated’, ‘A small town’),
(‘Buddy’, ‘Elf’, ‘Teenage’, ‘Comedy’, ‘New York’)
) AS a (SomeName, Movie, Age, Genre, Locale)
ORDER BY Age Desc
Go

— Short Script 2  –  Cláusula Values com conjunto com os comandos Top e Distinct —
SELECT DISTINCT TOP 5 Id FROM (VALUES (1), (1), (1), (1), (1),
(2), (2), (2), (2), (2),
(3), (3), (3), (3), (3),
(4), (4), (4), (4), (4),
(5), (5), (5), (5), (5)
) Valores(Id)
Order By Id
Go

— Short Script 3  –  Cláusula Values criando um Calendário Mensal —

Select dateadd(month,datediff(month,0,getdate()),0) + number
from master..spt_values n with (nolock)
where number between 0 and day(dateadd(month,datediff(month,-1,getdate()),0) – 1) -1 and type = ‘p’
Go

— Short Script 4  –  Cláusula Values criando um Relógio Diário —

Select dateadd(hour,number,dateadd(day,datediff(day,0,getdate()),0))
from master..spt_values n with (nolock)
where number between 0 and 23 and type = ‘p’
Go

— Short Script 5  –  Cláusula Values utilizada no comando Insert como Default Values —

Create Table #Tabela
(Codigo Int Identity(1,1))

Insert Into #Tabela Default Values
Go 10

Select Replicate(‘0’,Convert(VarChar(2),Codigo)) from #Tabela
Go

— Short Script 6  –  Cláusula Values utilizada para calcular o Fatorial de um número —

Declare @n int, @result float
Select @n = 7,@result=1

Select @result = @result * number From Master..spt_values
Where Type=’p’
And Number Between 1 And @n

Select @result
Go

— Short Script 5  –  Cláusula Values para criar um construtor de linhas (Row Constructor) —

SELECT Values.Prefix + Values1.Suffix As Name, Values.Number
FROM (VALUES (‘a’, 1),
(‘de’, 2)
) As Values (Prefix, Number),
(VALUES (‘pple’),
(‘ttach’),
(‘manda’)
) As Values1 (Suffix)
Go


Muito bem, missão mais que cumprida!

Uma super e especial relação de short scripts acaba de ser compartilhada, mesmo sendo denominados shorts entre aspas “curtos ou pequenos”, posso garantir que todos estes exemplos são de grande importância, apresentam um valor e conhecimento do mais alto nível.

Chegamos ao final de mais um Short Scripts, espero que este material possa lhe ajudar, ilustrando o uso de alguns recursos e funcionalidades do Microsoft SQL Server.

Acredito que você tenha observado que estes códigos são conhecidos em meu blog, todos estão relacionados aos posts dedicados ao Microsoft SQL Server publicados no decorrer dos últimos anos.

Boa parte deste material é fruto de um trabalho dedicado exclusivamente a colaboração com a comunidade, visando sempre encontrar algo que possa ser a solução de um determinado problema, bem como, a demonstração de como se pode fazer uso de um determinado recurso.

Links

Caso você queira acessar os últimos posts desta sessão, não perca tempo acesse os links listados abaixo:

https://pedrogalvaojunior.wordpress.com/2021/01/11/short-scripts-janeiro-2021/

https://pedrogalvaojunior.wordpress.com/2020/09/07/short-scripts-setembro-2020/

https://pedrogalvaojunior.wordpress.com/2020/05/25/short-scripts-maio-2020/

https://pedrogalvaojunior.wordpress.com/2020/02/05/short-scripts-fevereiro-2020/

https://pedrogalvaojunior.wordpress.com/2019/11/15/short-scripts-novembro-2019/

Agradecimento

Obrigado mais uma vez por sua visita, fico honrado com sua ilustre presença, desejo e espero que você possa ter encontrado algo que lhe ajudou.

Volte sempre, nos encontraremos mais uma vez na sessão Short Scripts no próximo post.

Tenha uma ótima semana.

Abraços.

Autor: Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. Mestre em Ciências Ambientes na linha de pesquisa em Geoprocessamento e Modelagem Matemática pela Universidade Estadual Paulista "Júlio de Mesquita Filho". Pós-Graduado no Curso de Gestão e Engenharia de Processos para Desenvolvimento de Software com RUP na Faculdade FIAP – Faculdade de Informática e Administração Paulista de São Paulo. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação pela Uninove – Campus São Roque. Formação MCDBA Microsoft, autor de artigos acadêmicos e profissionais postados em Revistas, Instituições de Ensino e WebSistes. Meu primeiro contato com tecnologia ocorreu em 1994 após meus pais comprarem nosso primeiro computador, ano em que as portas para este fantástico mundo se abriram. Neste mesmo ano, comecei o de Processamento de Dados, naquele momento a palavra TI não existia, na verdade a Tecnologia da Informação era conhecida como Computação ou Informática, foi assim que tudo começou e desde então não parei mais, continuando nesta longa estrada até hoje. Desde 2001 tenho atuado como Database Administrator – Administrador de Banco de Dados – SQL Server em tarefas de Administração, Gerenciamento, Migração de Servidores e Bancos de Dados, Estratégias de Backup/Restauração, Replicação, LogShipping, Implantação de ERPs que utilizam bancos SQL Server, Desenvolvimento de Funções, Stored Procedure, entre outros recursos. Desde 2008 exerço a função de Professor Universitário, para as disciplinas de Banco de Dados, Administração, Modelagem de Banco de Dados, Programação em Banco de Dados, Sistemas Operacionais, Análise e Projetos de Sistemas, entre outras. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping, etc. Trabalhei entre 2011 e 2017 como Administrador de Banco de Dados e Coordenador de TI no FIT – Instituto de Tecnologia da Flextronics, atualmente exerço a função de Professor Universitário na FATEC São Roque. CTO da Galvão Tecnologia, consultoria especializada em Gestão de TI, Administração de Servidores Windows Server, Bancos de Dados Microsoft SQL Server e Virtualização. Possuo titulação Oficial Microsoft MVP e reconhecimentos: MCC, MSTC, MIE e MTAC.

%d blogueiros gostam disto: