相当于AzureDB中的XP_CMDSHELL

时间:2018-06-13 11:34:42

标签: azure azure-sql-database

我在MS Azure VM上使用SQL Server作为服务,我想在存储过程中使用xp_cmdshell,但我收到以下错误/信息消息:

  

模块' ProcExportFacturaEDI_Manual2'取决于丢失的对象' xp_cmdshell'。该模块仍将创建;但是,在对象存在之前,它无法成功运行。

我在线阅读并发现在MS Azure中无法正常工作。有谁知道它的等价物或者我如何在Azure中使用它?

修改

我确实安装了它,但是我得到了以下消息,应该导出的文件不存在:

  

(1行(s)受影响)   Msg 2812,Level 16,State 62,Line 119   无法找到存储过程' xp_cmdshell'。

2 个答案:

答案 0 :(得分:1)

Azure SQLDB不支持xp_cmdshell。完全停止。没有等同的"因为Azure SQLDB在共享环境中运行而无法访问主机,这与独立的,完全访问您习惯使用本地实例的主机环境不同。

您需要重写存储过程才能使用它。我们无法告诉你"等价物#34;是因为我们无法访问您的存储过程,也不知道要求。

如果您无法避免使用xp_cmdshell,那么Azure SQLDB可能不适合您。您将要查看在Azure上设置运行SQL Server的VM(IaaS)。

答案 1 :(得分:0)

SQL Azure不提供对命令提示符的访问。将SQL Azure视为虚拟化服务,没有主机基础设施(虚拟化或物理化)。

如果您提到的存储过程需要创建文件,则可以创建Azure函数来创建Azure BLOB存储帐户的文件。

或者,您可以在Azure SQL Server VM(IaaS)上找到xp_cmdshell。