Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 在SQL Server 2012中创建数据库,在2008年编写脚本并使用?_Sql Server 2008_Sql Server 2012 - Fatal编程技术网

Sql server 2008 在SQL Server 2012中创建数据库,在2008年编写脚本并使用?

Sql server 2008 在SQL Server 2012中创建数据库,在2008年编写脚本并使用?,sql-server-2008,sql-server-2012,Sql Server 2008,Sql Server 2012,如果我使用2012创建了一个数据库并将该信息添加到其中,如果我在之后编写数据库脚本,我是否能够在2008年运行脚本并使所有内容正常工作?如果您使用的是SQL Management Studio,您可以右键单击数据库名称,然后选择Tasks→ 生成脚本 在这里,您可以创建脚本来编写模式、数据或模式和数据的脚本,如果单击“高级”按钮,您可以指定要针对哪个版本的SQL Server 因此,只需选择SQL 2008作为目标服务器,您就可以开始了 脚本?对好吧,让我换一种说法:这要看情况而定。只要您的对象

如果我使用2012创建了一个数据库并将该信息添加到其中,如果我在之后编写数据库脚本,我是否能够在2008年运行脚本并使所有内容正常工作?

如果您使用的是SQL Management Studio,您可以右键单击数据库名称,然后选择Tasks→ 生成脚本

在这里,您可以创建脚本来编写模式、数据或模式和数据的脚本,如果单击“高级”按钮,您可以指定要针对哪个版本的SQL Server


因此,只需选择SQL 2008作为目标服务器,您就可以开始了

脚本?对好吧,让我换一种说法:这要看情况而定。只要您的对象不使用任何2012特定功能,您就可以使用ManagementStudio或各种第三方工具()编写模式脚本。许多工具还提供选项(或配套工具)来编写数据脚本

问题在于,在SQL Server 2012中,没有一种非常简单的方法可以识别您可能正在使用2012特定功能的所有位置。例如,我不知道有哪个工具会检查您的数据库并指出您正在使用
FORMAT()
函数,这在SQL Server 2008或2008 R2中不可用

通过备份/恢复、附加/分离、镜像/日志传送等其他方式复制数据库将不起作用。你可以上升(从2005年、2008年或2008年R2)到2012年,但不能倒退


所以大体上我同意约翰的观点。在版本上开发要安全得多如果您有大量数据要移动(千兆字节),那么SQL Management Studio将为您生成的TSQL脚本可能会因其庞大而给您带来问题。更好的选择是使用BCP(批量复制程序)。缺点是这是一个命令行实用程序,需要比使用向导更多的工作

幸运的是,有人写了一些非常像只使用BCP的巫师的东西。它是SQL数据库迁移向导,在Codeplex-上免费提供。最初打算作为SQL Server和Azure之间的数据库迁移工具,您可以在SQL Server和SQL Server之间轻松地使用它。关键是进入高级选项(类似于ManagementStudio向导)并选择SQLServer。稍后当系统提示您输入目标系统时,请选择您的2008安装


我的数据库中没有特定于2012年的人工制品,对我来说工作非常顺利。

从2008年开始迁移到2012年可能会更安全。我问的唯一原因是我有一个Windows Server 8 Beta版SQL Server 2012安装,我想在外部设置对SQL的访问权限,这样我就可以在教室里完成一个项目。这样,我的项目合作伙伴和我都可以使用最新的数据库,而不必来回传递数据库副本,并在每次更改时尝试将其合并在一起。最后,数据库必须能够连接到2008版本。我不想卸载/重新安装2008来实现这一点。很好,我知道脚本的生成,只是不知道我可以为输出选择版本。这很有帮助。谢谢。除非您的存储过程具有特定于2012的语法(例如FORMAT()函数),否则无论目标版本如何,向导都会盲目地为您编写脚本,并没有警告您创建脚本将失败。此处的更多详细信息:我刚刚得出结论,考虑到我无法使用SSMS从远程位置创建任何2008年的表…:(卸载/重新安装开始!