问题标签 [visual-studio-dbpro]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2010 - TSD00563 部署可能会遇到错误,因为它依赖于 [sys].[sp_executesql] 并且它在目标数据库中不存在
我遇到了一个非常烦人的问题。我们的 SPROC 之一是构建一个动态的 SQL 位,然后使用它执行sp_executesql
(请不要讨论构建 SQL 字符串以供执行的问题)。
使用 Visual Studio 2010 数据库项目(又名 DataDude)进行模式比较和部署,我收到以下 SPROC 错误:
TSD00563 此部署在执行期间可能会遇到错误,因为 [dbo].[MYSPROC] 依赖于 [sys].[sp_executesql] 和 [sys].[sp_executesql] 在目标数据库中不存在
有谁知道我该如何解决这个问题?
我有对主数据库模式文件的引用,但这没有区别。此外,它不是引用master
,而是引用sys
。
非常感谢,贾恩斯
.net - 如何解决“程序对对象 dbo.sysssislog 的引用未解决”
我有一个 Visual Studio 2010 数据库项目,并且我已经导入了一个现有架构。此数据库中有一些存储过程引用了 Integration Services 系统表 dbo.sysssislog,并在我的项目中生成了许多警告。
我尝试将 master.dbschema 和 msdb.dbschema 添加为数据库引用,并且我还尝试将引用的数据库名称重命名为 tempdb(而不是 master 或 msdb),但问题仍然存在。
我打开了 msdb.dbschema 文件,并确认文件中存在 sysssislog 表。
这是警告:
sql-server - DBProj.dbschema(0,0):警告 SQL01271:表 X 和 Y 之间的未命名外键将通过检查表来检查
我在部署 Visual Studio SQL Server DBProject 时收到此错误
DBProj.dbschema(0,0):警告 SQL01271:将通过检查表来检查表 [dbo].[Match] 和 [dbo].[Team] 之间的未命名外键。命名外键以避免检查整个表,只检查新约束。
我的表定义是
更新: 未命名的约束
如果不指定名称,SQL 将生成一个随机名称,该名称由表示约束类型的前缀、部分表和列名称后跟随机字母数字字符串构建。它通常看起来像这样:DF_ MyTable _MyColu__3F3159AB
每次重建和部署 DBProject 时,都会重复此过程,生成一组新的随机约束名称
这个错误是什么意思?这意味着什么?特别是,命名外键以避免检查整个表而只检查新约束。
msbuild - DBProj 中的自定义 MSBuild 任务
我为我们的数据库项目创建了一个自定义 MSBuild 任务。此任务使用 XLSX 文件生成参考数据插入脚本,这些脚本会合并到部署后脚本中。
我用测试 MSBuild proj 对此进行了测试,它运行良好。
现在,当我将它集成到真正的 DBProj 文件中时,任务的输出是重复的,我看不到 MSBuild 输出日志记录。
所以,我的问题是:
1) 如何在 Visual Studio 中查看完整的 MSBuild 日志?2)我不确定 AfterBuild 或 BeforeBuild 是否运行了两次,但也许?
谢谢
visual-studio-2010 - Build->Deploy 不适用于数据库项目
我在 Visual Studio 2012 中有一个数据库项目。在“构建”菜单上选择“部署 MyDBProj”时,没有任何反应。
但是,当我按 F5 进行调试时,使用数据库项目属性的调试部分中的设置部署了数据库项目。这通过选中解决方案配置管理器中的“部署”复选框来启用。
我希望能够在不启动调试会话的情况下进行部署。我怎么做?
注意:这不是发布,这是另一回事。我想知道如何手动启动作为构建过程一部分的部署。由于部署已经自动完成,因此也应该可以手动启动它。