Hey guys!
Vou participar de uma live HOJE, no Canal .NET, junto ao meu amigo Renato Groffe, com o tema de “Dicas de Bancos de dados para desenvolvedores”. Vamos falar sobre vários assuntos e quero mostrar uma demo utilizando IA e SQL Server, expressão regular e mais algumas coisas bem interessantes.
Quando:03
HOJE – 03/09/2025 – a partir das 21:00 – horário de Brasília
Faça sua inscrição em:
https://bit.ly/dicas-databases-devs-11aed
Broadcast link:
O Novo Tipo de Dado JSON: Performance e Integridade
Até o SQL Server 2022, nós armazenávamos JSON como string (NVARCHAR). Funcionava? Sim. Mas não tínhamos validação nativa no nível de engine e a performance de armazenamento não era a ideal. No SQL Server 2025, temos o tipo JSON nativo.
Exemplo: Criando e Validando JSON
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
IF (OBJECT_ID('tempdb..#Tb_Vendas') IS NOT NULL) DROP TABLE [#Tb_Vendas]; CREATE TABLE [#Tb_Vendas] ( [Nr_Id] INT IDENTITY(1, 1) PRIMARY KEY, [Ds_Dados_Venda] json NOT NULL -- Novo tipo nativo ) WITH (DATA_COMPRESSION = PAGE); -- ADICIONA DADO VÁLIDO INSERT INTO [#Tb_Vendas] ( [Ds_Dados_Venda] ) VALUES ('{"Nm_Produto": "SQL Server 2025", "Nr_Valor": 5000.00, "Fl_Ativo": 1}'); -- TENTATIVA DE INSERIR JSON INVÁLIDO (VAI GERAR ERRO DE ENGINE) UPDATE [#Tb_Vendas] SET [Ds_Dados_Venda] = 'Texto comum' WHERE [Nr_Id] = 1; |
Chamadas Externas: sp_invoke_external_rest_endpoint
Essa é a funcionalidade que separa os meninos dos homens. Agora, o SQL Server pode “falar” com o mundo externo sem depender de CLR customizado ou pacotes de Integration Services para tarefas simples. Podemos consumir APIs de tradução, análise de sentimento ou até mesmo o Azure OpenAI.
Segurança com Database Scoped Credentials
Jamais coloque sua API Key direto no script. Use credenciais de escopo de banco de dados para anonimizar o acesso.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
-- CRIANDO A CREDENCIAL PARA ACESSO À API IF NOT EXISTS ( SELECT * FROM [sys].[database_scoped_credentials] WHERE [name] = 'https://api.openai.com' ) BEGIN CREATE DATABASE SCOPED CREDENTIAL [https://api.openai.com] WITH IDENTITY = 'API_KEY', SECRET = 'Sua_Chave_Aqui'; END; |
Expressões Regulares (Regex) Nativas
Depois de décadas pedindo, o SQL Server finalmente entregou funções de Regex. Isso acaba com aquelas gambiarras infinitas de LIKE e SUBSTRING para validar e-mails ou mascarar dados sensíveis.
As novas funções principais são:
- REGEXP_LIKE: Verifica se uma string segue um padrão.
- REGEXP_REPLACE: Substitui partes da string baseada em padrões.
- REGEXP_INSTR: Retorna a posição de um padrão.
Exemplo: Validação de E-mail e Mascaramento de PII
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
IF (OBJECT_ID('tempdb..#Tb_Usuarios') IS NOT NULL) DROP TABLE [#Tb_Usuarios]; CREATE TABLE [#Tb_Usuarios] ( [Nr_Id] TINYINT IDENTITY(1, 1), [Nm_Usuario] NVARCHAR(100) COLLATE Latin1_General_CI_AS, [Ds_Email] NVARCHAR(150) COLLATE Latin1_General_CI_AS, [Ds_Cartao] NVARCHAR(20) COLLATE Latin1_General_CI_AS ) WITH (DATA_COMPRESSION = PAGE); INSERT INTO [#Tb_Usuarios] ( [Nm_Usuario], [Ds_Email], [Ds_Cartao] ) VALUES -- VALIDANDO E-MAILS COM REGEXP_LIKE SELECT [Nm_Usuario], [Ds_Email] FROM [#Tb_Usuarios] WHERE REGEXP_LIKE([Ds_Email], '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$') -- MASCARANDO CARTÃO COM REGEXP_REPLACE SELECT [Nm_Usuario], REGEXP_REPLACE([Ds_Cartao], '\d{4}-\d{4}-\d{4}-', '--****-') AS [Ds_Cartao_Mascarado] FROM [#Tb_Usuarios]; |
O SQL Server 2025 está trazendo o banco de dados para a era da IA e da integração total. Como DBAs, nosso papel é entender como essas ferramentas funcionam internamente para garantir que a flexibilidade não venha acompanhada de lentidão.
Espero que tenham gostado dessa dica, um grande abraço e até a próxima!
