共用方式為


教學課程:使用預存程序來轉換資料

適用於:✅ Microsoft Fabric 中的 SQL 分析端點和倉儲

了解如何建立及儲存新的預存程序來轉換資料。

轉換資料

  1. 從功能區的 [首頁] 索引標籤中,選取 [新增 SQL 查詢]

    [首頁] 索引標籤的緞帶的螢幕擷取畫面,其中顯示選取 [新增 SQL 查詢] 的位置。

  2. 在查詢編輯器中,貼上下列程式碼以建立預存程序 dbo.populate_aggregate_sale_by_city。 這個預存程序會在稍後的步驟中建立及載入 dbo.aggregate_sale_by_date_city 資料表。

    --Drop the stored procedure if it already exists.
    DROP PROCEDURE IF EXISTS [dbo].[populate_aggregate_sale_by_city]
    GO
    
    --Create the populate_aggregate_sale_by_city stored procedure.
    CREATE PROCEDURE [dbo].[populate_aggregate_sale_by_city]
    AS
    BEGIN
        --If the aggregate table already exists, drop it. Then create the table.
        DROP TABLE IF EXISTS [dbo].[aggregate_sale_by_date_city];
        CREATE TABLE [dbo].[aggregate_sale_by_date_city]
            (
                [Date] [DATETIME2](6),
                [City] [VARCHAR](8000),
                [StateProvince] [VARCHAR](8000),
                [SalesTerritory] [VARCHAR](8000),
                [SumOfTotalExcludingTax] [DECIMAL](38,2),
                [SumOfTaxAmount] [DECIMAL](38,6),
                [SumOfTotalIncludingTax] [DECIMAL](38,6),
                [SumOfProfit] [DECIMAL](38,2)
            );
    
        --Reload the aggregated dataset to the table.
        INSERT INTO [dbo].[aggregate_sale_by_date_city]
        SELECT
            FS.[InvoiceDateKey] AS [Date], 
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory], 
            SUM(FS.[TotalExcludingTax]) AS [SumOfTotalExcludingTax], 
            SUM(FS.[TaxAmount]) AS [SumOfTaxAmount], 
            SUM(FS.[TotalIncludingTax]) AS [SumOfTotalIncludingTax], 
            SUM(FS.[Profit]) AS [SumOfProfit]
        FROM [dbo].[fact_sale] AS FS
        INNER JOIN [dbo].[dimension_city] AS DC
            ON FS.[CityKey] = DC.[CityKey]
        GROUP BY
            FS.[InvoiceDateKey],
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory]
        ORDER BY 
            FS.[InvoiceDateKey], 
            DC.[StateProvince], 
            DC.[City];
    END
    
  3. 若要稍後儲存此查詢以供參考,請以滑鼠右鍵按一下 [查詢] 索引標籤,然後選取 [重新命名]

    [編輯器] 畫面中的索引標籤的螢幕擷取畫面,其中顯示在何處以滑鼠右鍵按一下查詢並選取 [重新命名]。

  4. 鍵入 [建立彙總程序] 以變更查詢名稱。

  5. 在鍵盤上按 Enter 鍵,或選取索引標籤外的任意位置以儲存變更。

  6. 選取 [執行] 以執行查詢。

  7. 選擇緞帶上的 [重新整理] 按鈕。

    [首頁] 緞帶的螢幕擷取畫面,其中顯示選取 [重新整理] 按鈕的位置。

  8. 在 [物件總管] 中,展開 dbo 結構描述底下的 StoredProcedures 節點,確認您可以看到新建立的預存程序。

    [總管] 窗格的螢幕擷取畫面,其中顯示展開

  9. 從功能區的 [首頁] 索引標籤中,選取 [新增 SQL 查詢]

  10. 在查詢編輯器中,貼上下列程式碼。 這個 T-SQL 會執行 dbo.populate_aggregate_sale_by_city 來建立 dbo.aggregate_sale_by_date_city 資料表。

    --Execute the stored procedure to create the aggregate table.
    EXEC [dbo].[populate_aggregate_sale_by_city];
    
  11. 若要稍後儲存此查詢以供參考,請以滑鼠右鍵按一下 [查詢] 索引標籤,然後選取 [重新命名]

  12. 鍵入 [執行建立彙總程序] 以變更查詢名稱。

  13. 在鍵盤上按 Enter 鍵,或選取索引標籤外的任意位置以儲存變更。

  14. 選取 [執行] 以執行查詢。

  15. 選擇緞帶上的 [重新整理] 按鈕。 查詢需要兩到三分鐘的時間執行。

  16. 在 [物件總管] 中個,透過在 [總管] 中選取 aggregate_sale_by_city 資料表,載入資料預覽以驗證已成功載入的資料。

    [資料預覽] 畫面旁的 [總管] 窗格的螢幕擷取畫面,其中列出載入至所選資料表的資料。

後續步驟