使用工具和集成服务提升开发人员工作效率

已完成

SQL Server 2025 为开发人员提供处理数据、事件和 API 的功能和工具。 本单元介绍 SQL Server 2025 中的开发功能。

实现数据扩充功能

SQL Server 2025 显著改进了具有多个主要功能的数据扩充功能:

使用原生 JSON

SQL Server 2025 提供了改进的本机 JSON 支持,使你可以在 T-SQL 中直接存储、查询和操作 JSON。 新的函数如 JSON_OBJECTJSON_VALUE 简化了对半结构化数据的操作,而增强的索引提高了JSON查询的性能。 这使得混合关系数据和分层数据更容易用于新式应用程序。

通过 SQL Server 中的 JSON 支持,可以本机存储和处理 JSON 数据。

  • 直接在 SQL Server 中处理 JSON 文档
  • 使用 T-SQL 查询和更新 JSON
  • 为 JSON 属性编制索引以提高性能
  • 在数据库级别验证 JSON
  • 使用 JSON 数据类型进行严格类型约束

以下示例演示 SQL Server 2025 如何使用具有自动验证和点表示法的新 JSON 数据类型,从而允许在 T-SQL 中直接将 JSON 存储在列和查询属性(如名称和价格),而无需额外的函数。

-- Create a table with a JSON column
CREATE TABLE Products (
    ProductId int PRIMARY KEY,
    ProductData JSON
);

-- Insert valid JSON data with automatic validation
INSERT INTO Products (ProductId, ProductData)
VALUES (1, '{"name": "Widget", "price": 19.99, "features": ["durable", "lightweight"]}');

-- Query JSON properties using dot notation
SELECT 
    ProductId,
    ProductData.name,
    ProductData.price
FROM Products;

小窍门

在数据库中存储 JSON 数据之前, ISJSON() 使用函数验证 JSON 数据。

集成 REST API

SQL Server 2025 引入了内置的 REST API 支持,无需额外的中间件即可通过 HTTP 与数据库对象直接交互。 开发人员可以将表、视图和存储过程公开为 RESTful 终结点,以便更轻松地将 SQL Server 与新式 Web 和移动应用程序集成。 此功能支持安全身份验证、JSON 有效负载的输入和输出功能,并提供对公开操作的精细控制。 这简化了构建轻量级服务和微服务,这些服务使用 SQL Server 作为后端,同时减少了开发开销。

REST API操作在数据库中执行,提高了安全性并减少了外部依赖。

功能 / 特点 Description 示例用例
API 集成 从 T-SQL 调用外部 API 使用非Microsoft服务扩充数据
API 身份验证 使用托管标识保护 API 调用 安全地连接到 Azure 服务
响应处理 以本地形式处理 JSON/XML 响应 自动转换外部数据
请求管理 配置超时和重试 确保可靠的 API 通信

使用正则表达式操作

SQL Server 2025 在 T-SQL 中增加对正则表达式(RegEx)的本机支持,从而直接在查询中启用强大的模式匹配和文本操作。 借助新函数(例如 REGEXP_MATCHESREGEXP_REPLACE开发人员 REGEXP_LIKE)可以验证输入、提取复杂模式和执行高级字符串转换,而无需依赖 CLR(公共语言运行时)或外部脚本。 此功能简化了数据清理、格式验证和搜索动态模式等任务,使 SQL Server 更适用于现代数据处理方案。

正则表达式支持 添加了模式匹配功能:

功能 目的 Example
REGEXP_MATCHES 测试字符串是否与模式匹配 验证电子邮件格式
REGEXP_REPLACE 使用模式替换文本 清理和标准化数据
REGEXP_EXTRACT 提取匹配的子字符串 分析结构化文本
REGEXP_LIKE 基于模式的字符串比较 使用模式筛选数据

以下示例演示如何使用 SQL Server 2025 直接 sp_invoke_external_service调用外部 API,使用动态数据和安全标头发送 POST 请求,以及捕获 JSON 响应以立即在 T-SQL 中使用。

-- Call an external API to enrich customer data
DECLARE @apiResponse JSON;
EXEC sp_invoke_external_service 
    @service_name = 'CustomerEnrichment',
    @url = 'https://api.example.com/enrich',
    @method = 'POST',
    @headers = '{"Authorization": "Bearer {{azure_token}}"}',
    @request_body = '{"customerId": @customerId}',
    @response = @apiResponse OUTPUT;

以下示例演示 SQL Server 2025 如何使用正则表达式函数(例如 REGEXP_MATCHES 验证电子邮件格式和 REGEXP_REPLACE 标准化电话号码),从而直接在 T-SQL 中启用强大的文本验证和转换。

-- Validate email addresses using RegEx
SELECT 
    CustomerID,
    Email,
    CASE 
        WHEN Email REGEXP_MATCHES '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
        THEN 'Valid'
        ELSE 'Invalid'
    END AS EmailStatus
FROM Customers;

-- Standardize phone numbers using RegEx
SELECT 
    PhoneNumber,
    REGEXP_REPLACE(
        PhoneNumber,
        '^\+?1?[-. ]?(\d{3})[-. ]?(\d{3})[-. ]?(\d{4})$',
        '($1) $2-$3'
    ) AS FormattedPhone
FROM Contacts;

配置事件流传输

SQL Server 2025 引入了本机事件流式处理功能,允许实时数据直接从数据库流式传输到外部使用者,而无需复杂的 ETL 管道。 使用对流式处理协议的内置支持,可以将表、视图或查询的更改作为连续流发布到 Azure 事件中心等平台。

设置更改事件的流处理

在设置更改事件流之前,请确保正确配置 Azure 事件中心 命名空间。

更改事件流式处理提供:

  • 将事务日志更改直接流式传输到 Azure 事件中心
  • 与传统 CDC 相比,减少 I/O 开销
  • 启用实时数据复制
  • 支持事件驱动的体系结构

更改事件流式处理的某些主要优势包括:

  • 降低延迟:从事务日志直接流式传输无需中间存储
  • 资源使用率较低:与 CDC 相比,优化了 I/O 操作
  • 实时 AI 集成:使 AI 代理能够立即处理和响应数据更改
  • 可扩展体系结构:构建以处理高负荷事务环境

使用开发人员工具和语言

SQL Server 2025 通过广泛的语言和工具支持扩展开发人员工作效率。 开发人员可以通过集成运行时环境与新式语言(如 Python、R 和 JavaScript)一起使用 T-SQL,直接在数据库中启用高级分析和 AI 工作流。

增强的 Visual Studio 扩展提供更丰富的调试、IntelliSense 和部署功能,而新的 CLI 工具可简化自动化和 Azure Pipelines。 SQL Server 2025 与 REST API 终结点和本机 JSON、RegEx 和事件流式处理功能相结合,提供了一个统一的平台,用于高效构建现代数据驱动的应用程序。

安装 Python 驱动程序

适用于 SQL Server 2025 的新 Python 驱动程序提供:

  • 通过 pip 进行简单安装: pip install mssql-python
  • Async/await 支持以更好地提高性能
  • 内置连接池
  • 用于改进 IDE 集成的类型提示
  • 全面的错误处理

以下 Python 代码片段演示如何使用 Python 对 SQL Server 数据库执行异步查询。 它使用 mssql.async 库与 connect('connection_string') 建立非阻塞连接,确保通过异步进行高效的资源管理。 在连接中,它会创建一个游标,使用 SELECT TOP 10 * FROM Customers 异步地执行 await cursor.execute() SQL 查询,并使用 await cursor.fetchall() 检索所有结果。

from mssql.async import connect

async with connect('connection_string') as conn:
    async with conn.cursor() as cursor:
        await cursor.execute('SELECT TOP 10 * FROM Customers')
        results = await cursor.fetchall()

使用 GitHub Copilot 增强 VS Code 体验

Visual Studio Code 的 MSSQL 扩展现在包含通过 GitHub Copilot 集成实现的 AI 驱动的功能:

  • 智能 SQL 生成

    • 基于自然语言说明完成 SQL 查询
    • 建议优化的查询模式
    • 生成数据库架构修改
  • 智能架构探索

    • AI 驱动的架构推荐
    • 自动关系检测
    • 架构更改的影响分析
  • 查询优化

    • 性能改进建议
    • 索引建议
    • 执行计划分析
  • ORM 支持

    • 生成实体框架迁移
    • 根据数据库架构建议模型更改
    • 创建数据访问层代码

使用 MSSQL 扩展设置连接配置文件并打开新的查询编辑器。 当您开始输入诸如以下的评论时:

-- Find all customers who made purchases in the last 30 days
-- and calculate their total spending

Copilot 读取意向并自动建议完整的 SQL 查询。

SELECT 
    c.CustomerID,
    c.Name,
    COUNT(o.OrderID) as OrderCount,
    SUM(o.TotalAmount) as TotalSpending
FROM 
    Customers c
    JOIN Orders o ON c.CustomerID = o.CustomerID
WHERE 
    o.OrderDate >= DATEADD(day, -30, GETDATE())
GROUP BY 
    c.CustomerID,
    c.Name
HAVING 
    COUNT(o.OrderID) > 0
ORDER BY 
    TotalSpending DESC;

TabEnter 接受 Copilot 的建议,或对其进行编辑以获取准确性。

这些功能使开发人员能够构建更复杂的、高效且可维护的数据库应用程序,同时通过 AI 协助和新式工具提高工作效率。