【问题标题】:Can't create stored procedure with reference to table in other database无法参考其他数据库中的表创建存储过程
【发布时间】:2017-01-24 22:22:11
【问题描述】:

我在 Azure SQL v12 上有一些数据库。一个名为GM_STAGE,一个名为STRAT_CMS

我正在尝试将此存储过程添加到STRAT_CMS

CREATE PROCEDURE [dbo].[SP_GM_STAGE_FILE_LOAD_STS_GET]
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT *
    FROM [GM_STAGE].[dbo].[FILE_LOAD_STATUS]

结束

我收到了这个我不明白的错误,因为数据库显然存在。

此版本的 SQL Server 不支持对“GM_STAGE.dbo.FILE_LOAD_STATUS”中的数据库和/或服务器名称的引用。

为什么我不能创建这个存储过程?

【问题讨论】:

  • 你使用的是什么版本的sql server,数据库的兼容级别是多少? select @@version, compatibility_level from sys.databases where name in ('gm_stage','gm_data_repo');
  • 不能在 Azure 中进行跨数据库查询。
  • @SqlZim Microsoft SQL Azure (RTM) - 2016 年 12 月 5 日 12.0.2000.8 21:15:30 版权所有 (C) 2016 Microsoft Corporation。保留所有权利。
  • @SeanLange 您现在可以:azure.microsoft.com/en-us/blog/…
  • 此外,下面的 Richards 链接是另一篇关于如何完成此任务的好文章。 scarydba.com/2016/03/21/…

标签: sql sql-server azure stored-procedures


【解决方案1】:

Azure SQL v12 支持跨数据库查询。确保您使用的两个数据库都是最新的。

https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 2013-10-16
    • 2017-12-24
    • 2011-12-16
    • 2017-05-08
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多