创建与2008兼容的SQL Server 2012数据库

时间:2013-07-03 14:02:15

标签: sql-server sql-server-2008 sql-server-2012

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

4 个答案:

答案 0 :(得分:14)

在备份2012年数据库并将其恢复到2008年时?

不,你不能这样做

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

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

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

答案 1 :(得分:10)

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

(这需要两个都在线,你需要设置新数据库才有权访问它,我在办公室环境中这样做,其中2012数据库用于创建C#应用程序,但它运行的数据库是对于2008年,您可以在本地执行此操作,然后在执行以下操作后将数据从2008备份到.bak文件,但我还没有对其进行测试)

我将表的结构导出为SQL by;

-> 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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:-3)

实际上,您可以将数据库的兼容级别设置为100。

有关此内容的更多信息,请访问此链接http://msdn.microsoft.com/en-us/library/bb510680.aspx