VS SQL Server数据库项目(SSDT)将项目架构与链接服务器/服务器变量

时间:2016-10-05 20:10:11

标签: sql-server visual-studio-2015 sql-server-data-tools database-project

我有一个VS SQL Server项目,其中包含服务器。
链接服务器已添加为参考数据库(.dacpac),数据库位置设置为“不同数据库,不同服务器”。
我删除了数据库变量,但VS不会让我删除服务器变量 所以我有$(OtherServer)作为服务器变量。

现在我的问题是,无论何时我尝试将数据库项目与数据库进行比较,它都会告诉我[$(OtherServer)]与数据库不匹配。

例:
数据库项目中的Sproc已经

SELECT * FROM [$(OtherServer)].Test.dbo.TestTable;

但是在服务器上,sproc有

SELECT * FROM TestServer.Test.dbo.TestTable;

问题:

  1. 是否有某种方法可以删除“服务器变量”,就像“数据库变量”一样? 我尝试通过将“ServerSqlCmdVariable”更改为“ServerVariableLiteralValue”来手动执行此操作* .sqlproj文件,就像它对数据库变量一样,但是没有用。
  2. 在使用服务器变量时如何比较sql server数据库项目?
  3. 即使构建数据库项目,Schema Compare看起来只会进行文本比较,但它仍然认为proc已经更改。
    在VS 2015中运行Schema Compare时,不仅procs,views和trigger似乎有问题。

    重现问题的步骤

    1. 在VS
    2. 中创建空白SQL Server项目
    3. 右键单击项目并选择“导入数据库”
    4. 选择具有带链接服务器的proc或视图的数据库
    5. 将链接服务器的* dacpac的数据库引用添加到 项目
    6. 对于数据库位置,请选择“区分数据库,不同服务器”
    7. 添加“数据库名称”,但将“数据库变量”留空。
    8. 添加“服务器名称”并将“服务器变量”添加为$(OtherServer)
    9. 编辑使用链接的数据库项目中的所有sql脚本 服务器现在包括[$(OtherServer)]
    10. 右键单击该项目并构建。
    11. 右键单击该项目并选择“Schema Compare”
    12. 比较完成后,它会告诉您所有[$(OtherServer)]的proc / view与数据库不匹配。

      在此发布反馈https://connect.microsoft.com/VisualStudio/feedback/details/3105733

0 个答案:

没有答案