利用工具和整合服務提升開發人員生產力
SQL Server 2025 提供開發者處理資料、事件及 API 的功能與工具。 本單元涵蓋 SQL Server 2025 的開發能力。
實作資料擴充功能
SQL Server 2025 大幅提升了資料豐富功能,具備多項關鍵功能:
使用原生 JSON
SQL Server 2025 提供更先進的原生 JSON 支援,讓你能直接在 T-SQL 中儲存、查詢並操作 JSON。 新功能例如 JSON_OBJECT 並 JSON_VALUE 簡化了半結構化資料的處理,而增強的索引則提高了 JSON 查詢的效能。 這使得現代應用程式更容易混合關聯式和階層式資料。
JSON 支援 SQL Server 讓你能原生儲存和處理 JSON 資料。
- 直接在 SQL Server 中處理 JSON 文件
- 使用 T-SQL 查詢和更新 JSON
- 索引 JSON 屬性以加快效能
- 在資料庫層級驗證JSON
- 使用 JSON 資料類型進行嚴格的類型強制執行
以下範例展示了 SQL Server 2025 如何使用新的 JSON 資料型別,搭配自動驗證與點符號,讓你能將 JSON 存放在欄位中,並直接在 T-SQL 中查詢名稱和價格等屬性,無需額外函式。
-- 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;
小提示
使用函數 ISJSON() 在將 JSON 資料儲存在資料庫中之前驗證它。
整合 REST API
SQL Server 2025 引入內建 REST API 支援,允許透過 HTTP 直接與資料庫物件互動,無需額外中介軟體。 開發者可以將資料表、檢視與儲存程序暴露為 RESTful 端點,使 SQL Server 更容易整合到現代網頁及行動應用程式中。 此功能支援安全身份驗證、輸入和輸出的 JSON 承載,以及對公開哪些操作的精細控制。 這簡化了以 SQL Server 作為後端的輕量級服務與微服務,同時降低開發負擔。
REST API 操作在資料庫中執行,提高了安全性並減少了外部依賴關係。
| 特徵 / 功能 | 說明 | 範例用例 |
|---|---|---|
| API 整合 | 從 T-SQL 呼叫外部 API | 使用非 Microsoft 服務擴充資料 |
| API 驗證 | 使用受管理的身份安全 API 呼叫 | 安全連接 Azure 服務 |
| 回應處理 | 原生處理 JSON/XML 回應 | 自動轉換外部資料 |
| 請求管理 | 設定逾時和重試 | 確保可靠的 API 通訊 |
使用RegEx操作
SQL Server 2025 在 T-SQL 中新增了對正則表達式(RegEx)的原生支援,使查詢中能直接進行強大的模式匹配與文字操作。 使用 、 REGEXP_MATCHES和 REGEXP_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 如何利用 RegEx 函式,如 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 Event Hubs 這樣的平台。
設定變更事件串流處理
在設定變更事件串流前,請確保你的 Azure Event Hubs 命名空間設定正確。
變更事件串流提供的功能包括:
- 將交易日誌變更直接串流至 Azure Event Hubs
- 與傳統 CDC 相比,減少 I/O 額外負荷
- 啟用即時資料複寫
- 支援事件驅動架構
變更事件串流的一些主要優點包括:
- 減少延遲:從交易日誌直接串流,無需中間儲存
- 降低資源使用量:與 CDC 相比,最佳化的 I/O 操作
- 實時 AI 集成: 使 AI 代理能夠即時處理和反應數據變化
- 可擴展架構: 專為處理大批量交易環境而構建
使用開發人員工具和語言
SQL Server 2025 透過廣泛的語言與工具支援,提升開發者生產力。 開發者可透過整合的執行環境,與 T-SQL 及現代語言如 Python、R 和 JavaScript 並用,實現資料庫中直接進行進階分析與 AI 工作流程。
強化版的 Visual Studio 擴充功能提供更豐富的除錯、IntelliSense 及部署功能,而新的 CLI 工具則簡化了自動化與 Azure Pipelines。 結合 REST API 端點及原生 JSON、RegEx 與事件串流功能,SQL Server 2025 提供了一個統一平台,有效打造現代化、數據驅動的應用程式。
安裝 Python 驅動程式
SQL Server 2025 的新 Python 驅動程式提供:
- 通過 pip 簡單安裝:
pip install mssql-python - 支援 async/await,以提升效能
- 內建連線集區
- 類型提示以實現更好的 IDE 集成
- 全面的錯誤處理
以下的 Python 摘要展示了如何使用 Python 對 SQL Server 資料庫執行非同步查詢。 它會使用 mssql.async 程式庫來與 connect('connection_string') 建立非封鎖的連線,並透過 async 以確保資源的有效管理。 在連線內部,它會建立游標,使用 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 的
智慧SQL產生:
- 根據自然語言描述完成 SQL 查詢
- 建議最佳化的查詢模式
- 產生資料庫結構描述修改
智慧型架構探索:
- AI 驅動的架構建議
- 自動關係偵測
- 結構描述變更的影響分析
查詢最佳化:
- 效能改善建議
- 索引建議
- 執行計劃分析
ORM 支援:
- 產生 Entity Framework 移轉
- 根據資料庫結構描述建議模型變更
- 建立資料存取層程式碼
使用 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;
請按Tab或Enter接受Copilot的建議,或為準確性進行編輯。
這些功能使開發人員能夠構建更複雜、高效和可維護的數據庫應用程序,同時通過 AI 輔助和現代工具提高生產力。