我可以在无服务器sql池中创建存储过程吗

问题描述 投票:0回答:2

按照 Microsoft 的官方文档,可以在 Azure Synapse Serverless SQL 池中创建存储过程。我设法执行以下脚本

Create proc Test
as
Select 1 as X

但是,我在 Serverless SQL 池中没有看到 Test 存储过程。 我在 Serverless SQL 池中也没有看到可编程性文件夹

azure serverless pool
2个回答
2
投票

我发现在 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   

enter image description here

SSMS

enter image description here


0
投票

是的,可以使用 T-SQL 命令在 Synapse Analytics 中的无服务器 SQL 中创建存储过程。实际上,我使用 SSMS 并连接到 Synapse Analytics Workspace 中的 SQL 数据库 - 使用 Azure 中的“概述”窗口中提供的

Serverless SQL endpoint
链接来完成此操作:

enter image description here

但对我来说有一些警告 - 模式 [dbo] 被明确禁止,所以我必须在执行

CREATE PROCEDURE
脚本之前创建一个模式。

第二个警告是我必须做两次。我第一次执行

CREATE PROCEDURE
时什么也没发生,尽管 SSMS 报告成功。只有在我再次执行它之后,存储过程才出现在对象资源管理器中。但我之前和之后都遇到了连接问题,可能与此有关,与 Serverless SQL 没有任何关系。

PS。我的SQL DB实际上是DeltaLake,表是parquet文件。不确定它在这个答案中发挥任何作用,但我将其包括在内,以防万一。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.