
我使用SSMS =>创建了表,视图,存储过程和函数的脚本.任务=>生成脚本功能.无论我为脚本生成选择哪个选项,我总是会遇到一些问题,即只要我使用IF NOT EXISTS选项,我就会收到一条sql03070错误,说“在此上下文中无法识别此语句.”.
当我将CREATE […]改为ALTER […]时,我也得到了同样的错误.在Microsoft’s Connect Website上发布一篇文章之后,预计这将是“数据库项目不允许更改,因为它将动态确定是否需要针对特定数据库目标的ALTER或CREATE.”很好,但是当我从上下文菜单中选择Execute sql时,如果特定对象已经存在于数据库中,我会收到错误 – 我希望在这种情况下动态生成ALTER语句.
不幸的是,由于数据库中有很多遗留代码/对象,我无法创建或运行完整的部署脚本,因此基本上我的想法是使用VS2010和TFS在更改对象时至少具有源控制的一些优点.数据库.
总是遇到错误sql03070虽然实际上不是一个选项,并且使用VS2010中的导入数据库对象和设置导入数据库也不能正常工作,因为我没有单个文件用于例如表定义(带键,索引等)但是多个难以处理的文件.
最后一个选项,将脚本的Build Action设置为Not in Build会导致无法对这些文件运行Code Analysis,这是我们也想做的事情.
所以基本上我的问题是我们设置在VS2010中使用数据库项目/ TFS的最佳方法是什么,而不会出现sql03070错误但启用了代码分析?如果我的问题的某些方面可能不够清楚,我会感到非常困惑和道歉,请随时询问更多细节,我会尽力回答.
提前致谢
G.
解决方法 数据库项目背后的想法是,当您执行部署构建时,脚本会生成sql文件(可从“构建”菜单中获取).在此之前,您需要“定位”特定数据库.这可以通过Project属性中的Deploy Tab来完成.然后获取Target数据库的Schema,然后获取项目的模式并生成差异的脚本,以使目标数据库与项目相同.希望这是有道理的.这是一篇很好的文章,可以更好地解释这一点.
http://blogs.msdn.com/b/gertd/archive/2009/06/05/declarative-database-development.aspx
最好的运气,
C
总结以上是内存溢出为你收集整理的VS2010数据库项目使用ALTER语句生成SQL03070错误全部内容,希望文章能够帮你解决VS2010数据库项目使用ALTER语句生成SQL03070错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)