Fala pessoal!
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
Link da transmissão:
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
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.
-- 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
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
('Dirceu Resende', '[email protected]', '1234-5678-9012-3456'),
('Thiago Bertuzzi', '[email protected]', '9876-5432-1098-7654');
-- 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!
Comentários (0)
Carregando comentários…