Azure 托管数据库实例 - 无法修改存储过程

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

所有,我们公司使用 Azure 托管数据库实例,它们工作正常,除了当我尝试右键单击过程并选择修改时,它会产生错误消息:无效版本:16。(Microsoft.SqlServer.Smo)。

我尝试修改的任何存储过程都会发生这种情况。如果我右键单击一个过程并尝试编写它的脚本,也会发生这种情况...但是,如果我从本地 SQL Server 实例连接到此数据库服务器,我可以毫无问题地修改或编写该过程。这似乎是 Azure 托管实例的问题。

我检查了用户的权限,尝试从本地 SQL Server 连接,搜索在线帮助。我还没有找到这个问题的答案。

sql-server database azure instance
1个回答
0
投票

正如 @Thom A 所指出的,您可能只需要更新 SSMS,但是,或者,这里介绍了如何修改存储过程,而无需为您编写 SMO/SSMS 脚本。

可以使用OBJECT_DEFINITION获取存储过程DDL,然后打印到控制台。然后复制并修改它(将CEREATE更改为CREATE OR REPLACE)。例如

declare @sql nvarchar(max) = (
select OBJECT_DEFINITION(object_id('dbo.uspGetBillOfMaterials')) d)

SELECT @sql AS [processing-instruction(x)] FOR XML PATH('')

PRINT 命令会截断长字符串,因此使用 xml 的这种技巧允许将长字符串发送到客户端而无需字符转义。

© www.soinside.com 2019 - 2024. All rights reserved.