有没有办法使用 SQL Server 2012 创建数据库并能够将其传递给 SQL Server 2008?
4 回答
就像备份 2012 年的数据库并将其恢复到 2008 年一样?
不,你不能那样做
没有办法,没有方法,没有技巧,没有黑客,没有解决方法 - 它只是无法完成。
您需要使用.sql
结构和数据脚本从任何较新的 SQL Server 版本迁移到较旧的版本。SQL Server 备份文件 ( *.bak
) 和实际数据库文件 ( *.mdf
, *.ndf
) 从未向后兼容。
并揭穿一个神话:设置兼容性级别仅限制可用功能(如数据类型等) - 但它不会使*.bak
备份或*.mdf
数据文件与旧版本兼容。
我刚刚将一个数据库从 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
希望这有效/帮助其他人,因为我花了一段时间才弄清楚。
原则上没有。您可以提供兼容性模型 100 (SQL 2008 / 2008R2),但从 2012 年起,您将无法在 SQL2008 服务器中进行(备份/恢复)或(分离/附加)。
如果您只需要移动架构,我知道的唯一解决方法是生成架构,然后在 SQL2008 中创建数据库。如果您需要移动数据,则需要更多的工作,您可以尝试一些工具,例如SSMS tools | Generate Insert Statements
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