教程:使用存储过程转换数据

适用于:SQL 分析终结点和 Microsoft Fabric 中的仓库

了解如何创建和保存用于转换数据的新存储过程。

转换数据

  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节点,从而验证能否看到新建的存储过程。

    资源管理器窗格的屏幕截图,其中显示了在哪里展开 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. 选择功能区中的“刷新”按钮。 执行查询需要 2 到 3 分钟。

  16. 在“对象资源管理器”中,在“资源管理器”中选择aggregate_sale_by_city表以加载数据预览,从而验证已成功加载数据。

    “数据预览”屏幕旁边的资源管理器窗格的屏幕截图,其中列出了加载到所选表中的数据。

下一步