首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么SQL 2008会“生成脚本.”实用工具生成无效的SQL脚本?

为什么SQL 2008会“生成脚本.”实用工具生成无效的SQL脚本?
EN

Server Fault用户
提问于 2010-04-09 15:21:04
回答 2查看 573关注 0票数 0

我有一个需要还原到SQL2008实例的SQL2005数据库。

我读过“生成脚本.”向导,为SQL2005兼容性设置它,并生成一个62 it的SQL脚本。

当我在SQL2005实例上运行它时,它会抛出各种错误,其中一些错误非常奇怪,因为它们描述了一个无效的数据库。

  • FK的约束是错误的。它试图在不存在的列上创建FKs。
  • 它正在尝试插入带有重复键错误的记录。
  • 它试图两次创建相同的对象。

知道怎么会发生这种事吗?此SQL脚本是由在我试图还原它的几分钟前生成的,并且没有被修改。

为什么这会生成无效的SQL文件?它不是仅仅描述了SQL2008数据库,因为我们正在使用它,它大概是有效的吗?

特别是,重复的键插入错误使我感到困惑。如果SQL脚本中有一个键约束,那么SQL2008表中必须有相同的内容。那么,我们如何才能在其中得到违反键约束的行呢?

更新:

这与SQL2005的退步有关。我运行脚本以与SQL2008兼容,然后转身,在它刚发出的同一个SQL实例上运行生成的脚本,并且它运行时没有出错。因此,当我试图使它与SQL2005兼容时,问题就出现了。

另一个更新:

我重新创建了脚本,使其与SQL2005兼容,然后转身在SQL2008实例上运行它。效果很好。所以..。

  • SQL2008脚本-> SQL2008实例工作
  • SQL2005脚本-> SQL2008实例工作
  • SQL2005脚本-> SQL2005实例不工作

解决方案:

您不能为SQL2005创建脚本并在Express上运行它。我换了标准版,效果很好。

EN

回答 2

Server Fault用户

发布于 2010-04-09 19:41:14

问题是我试图导入到SQL2005Express。我切换到SQL2005Standard,并且能够运行脚本而没有出错。

票数 1
EN

Server Fault用户

发布于 2010-04-09 15:56:32

我不知道这现在是否内置于SQLServer2008ManagementStudio,但是在2005年,如果使用单独的下载,Server数据库发布向导获得了更多的选项:微软下载中心

这对你有帮助。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/130977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档