4

有没有办法使用 SQL Server 2012 创建数据库并能够将其传递给 SQL Server 2008?

4

4 回答 4

14

就像备份 2012 年的数据库并将其恢复到 2008 年一样?

不,你不能那样做

没有办法,没有方法,没有技巧,没有黑客,没有解决方法 - 它只是无法完成。

您需要使用.sql结构和数据脚本从任何较新的 SQL Server 版本迁移到较旧的版本。SQL Server 备份文件 ( *.bak) 和实际数据库文件 ( *.mdf, *.ndf) 从未向后兼容。

并揭穿一个神话:设置兼容性级别限制可用功能(如数据类型等) - 但它不会使*.bak备份或*.mdf数据文件与旧版本兼容。

于 2013-07-03T14:05:06.710 回答
10

我刚刚将一个数据库从 2012 年转移到 2008 R2。

(这需要在线并且您必须设置具有访问权限的新数据库,我在办公环境中执行此操作,其中 2012 数据库用于创建 C# 应用程序,但它运行的数据库是 2008 年的,我想您可以在本地执行此操作,然后在执行以下操作后将 2008 年的数据备份到 .bak 文件中,但我尚未对此进行测试)

我将表的结构导出为 SQL;

-> Right clicking the database
-> Tasks
-> Generate scripts
-> Choose Objects (Script entire database and all database objects) 
-> Save to New Query Window (Click Advanced and under "Script for server version" choose your version) 
-> Click Next and Next and it should generate SQL to new window. 
-> I removed everything above "GO, ALTER DATABASE" 
-> Create the new database on the 2008 Server using the same name and run the above SQL to make the tables.

要做表格数据:

-> In the 2012 database right click the database and click tasks
-> Export data
-> Choose the source
-> Next 
-> Choose the destination
-> Copy data from one or more tables
-> Next
-> Select the tables
-> Next
-> Run Immediately

希望这有效/帮助其他人,因为我花了一段时间才弄清楚。

于 2014-06-19T14:28:05.033 回答
2

原则上没有。您可以提供兼容性模型 100 (SQL 2008 / 2008R2),但从 2012 年起,您将无法在 SQL2008 服务器中进行(备份/恢复)或(分离/附加)。

如果您只需要移动架构,我知道的唯一解决方法是生成架构,然后在 SQL2008 中创建数据库。如果您需要移动数据,则需要更多的工作,您可以尝试一些工具,例如SSMS tools | Generate Insert Statements

于 2013-07-03T14:15:31.973 回答
-3

actually there is, you can set the compatibility level of your database to 100.

More about this can be found at this link http://msdn.microsoft.com/en-us/library/bb510680.aspx

于 2013-07-03T14:12:50.797 回答