【问题标题】:Database project items precedence数据库项目项目优先级
【发布时间】:2016-11-22 11:12:52
【问题描述】:

在 Visual Studio 2013 Pro 中,我创建了一个用于管理数据库架构更改的数据库项目。

在这个项目中,我添加了两个项目:

1.同义词 DDL 脚本,它引用另一个数据库:

CREATE SYNONYM [dbo].[synMerchCats]
    FOR spaceman_sys.[dbo].USR_CAT_CATEGORY

2。一个视图 DDL 脚本,它指的是从第 1 点开始的同义词脚本。

CREATE VIEW [dbo].[vwMerchCats]
AS Select
    CODE,
    NAME
From
    [dbo].[synMerchCats]

当我尝试构建项目时,它会抛出错误:

错误 8 SQL71501:视图:[dbo].[vwMerchCats] 有一个未解决的 引用对象 [dbo].[synMerchCats].[NAME]。数据库 c:\users\zienka01\documents\visual 工作室 2013\Projects\AsoBulkFiller\Database\Views\vwMerchCats.sql 4 3

我知道视图无法识别上一步创建的同义词,但我不知道为什么?我要跨越来自两个不同数据库的对象这一事实是否有任何限制?

您能否建议如何构建这个项目以使其运行?

谢谢。

【问题讨论】:

    标签: visual-studio-2013 database-project


    【解决方案1】:

    您可以添加数据库引用并在对象前面加上引用名称;

    创建视图 [dbo].[vwMerchCats] AS 选择代码,名称来自 [$(ReferenceName)].[dbo].[synMerchCats]

    它应该可以解决问题。

    【讨论】:

    • [dbo].[vwMerchCats] 来自与 [synMerchCats] 相同的数据库(名为 DBMAIN)。你的意思是我应该在数据库 DBMAIN 项目中创建本地 SQLCMD 变量并将其用作同一数据库 DBMAIN 中的源的相互依赖对象定义(例如讨论的同义词和视图)的前缀?
    猜你喜欢
    • 1970-01-01
    • 2012-02-24
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多