按照 Microsoft 的官方文档,可以在 Azure Synapse Serverless SQL 池中创建存储过程。我设法执行以下脚本
Create proc Test
as
Select 1 as X
但是,我在 Serverless SQL 池中没有看到 Test 存储过程。 我在 Serverless SQL 池中也没有看到可编程性文件夹
我发现在 Synapse Studio 或 Azure Data Studio 中查看存储过程的唯一方法是查询 sys 架构表。但是,如果您通过此处的步骤使用 SSMS,SP 是可见的 https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/get-started-ssms
在Synapse Studio中查询
SELECT definition, uses_ansi_nulls, uses_quoted_identifier, is_schema_bound
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('dbo.Test');
GO
SSMS
是的,可以使用 T-SQL 命令在 Synapse Analytics 中的无服务器 SQL 中创建存储过程。实际上,我使用 SSMS 并连接到 Synapse Analytics Workspace 中的 SQL 数据库 - 使用 Azure 中的“概述”窗口中提供的
Serverless SQL endpoint
链接来完成此操作:
但对我来说有一些警告 - 模式 [dbo] 被明确禁止,所以我必须在执行
CREATE PROCEDURE
脚本之前创建一个模式。
第二个警告是我必须做两次。我第一次执行
CREATE PROCEDURE
时什么也没发生,尽管 SSMS 报告成功。只有在我再次执行它之后,存储过程才出现在对象资源管理器中。但我之前和之后都遇到了连接问题,可能与此有关,与 Serverless SQL 没有任何关系。
PS。我的SQL DB实际上是DeltaLake,表是parquet文件。不确定它在这个答案中发挥任何作用,但我将其包括在内,以防万一。