有没有办法使用SQL Server 2012创建数据库并能够将其传递给SQL Server 2008?
答案 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