将使用 SQL Server Express 2008 创建的 mdf 导入 SQL Server 2005 时出现问题

Posted

技术标签:

【中文标题】将使用 SQL Server Express 2008 创建的 mdf 导入 SQL Server 2005 时出现问题【英文标题】:Problem with importing an mdf created with SQL Server Express 2008 into SQL Server 2005 【发布时间】:2010-03-14 10:18:51 【问题描述】:

这个问题可能非常容易解决,但我需要解决它,因为我需要继续我的项目。我在家里使用 SQL Server Express 2008,并且一直在开发一个 ASP.NET MVC 应用程序,该应用程序将我的数据库存储在项目文件夹中的 mdf 文件中。问题是 Uni labs 的 SQL Server 是 SQL Server 2005,当我尝试用 VS Server Explorer 打开 mdf 文件时,它说 mdf 文件的版本超过了服务器可以接受的版本。

我想到的唯一选择是将数据库导出为 sql 文件,就像我用 phpmyadmin 做过一千次一样。问题是 SQL Management Studio Express 并不是世界上最有用的工具,而且出于某种奇怪的原因,我在 Google 上找到的所有文章都无关紧要。请帮忙。

【问题讨论】:

【参考方案1】:

无法将在 SQL Server 2008 上创建的数据库附加到 SQL Server 2005。其他方向是可能的。 您唯一的选择是编写数据库和数据脚本并在 SQL 2005 上运行脚本。如果您使用过 SQL Server 2008 的任何新功能,则必须重新编写脚本。

【讨论】:

【参考方案2】:

我用的不多,但是右键数据库 -> 任务... -> 生成脚本... / 导出数据... / 导入数据... 应该可以完成这项工作。

【讨论】:

【参考方案3】:

Google“数据库发布向导”,它是 Microsoft 提供的一种工具,用于编写整个数据库(包括架构和数据)的脚本。

【讨论】:

【参考方案4】:

您可以编写您的数据库及其数据的脚本。然后在目标服务器上运行,新建一个兼容2005版本的数据库。

【讨论】:

【参考方案5】:

像 Red-Gate SQL Compare 和 SQL Data Compare 这样的工具可以将实时数据库与例如备份文件,因此您可以将 SQL Server 2005 数据库与 SQL Server 2008 Express 备份文件进行比较,并以这种方式移动数据。

或者您可以使用this one here 或this one here 等工具为已更改数据的表生成INSERT 语句。这些可以为您的表生成 INSERT 脚本,您可以随身携带并在 SQL Server 2005 目标系统上运行。

【讨论】:

以上是关于将使用 SQL Server Express 2008 创建的 mdf 导入 SQL Server 2005 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

将使用 SQL Server Express 2008 创建的 mdf 导入 SQL Server 2005 时出现问题

通过sql server express将Android应用程序连接到sql server

如何将所有数据库(快速)自 sql server 2008 express 传递到 sql server 2008 R2(无 express)

尝试将 SQL Server 2012 Express 还原到 2014

将数据库项目部署到 SQL Server 2008 Express

如何将远程 SQL Server Express 数据库的部分副本复制到本地 SQL Server Express 数据库?