0

我试图从sql server 2016服务器将数据库复制到另一台服务器在sql server管理工作室2005.(server1.database1)到(server2.database1) 我试过了分离和附加的方法,它没有工作。 我也尝试复制数据库,它也没有工作! 我需要所有的表格和视图和PR! 最后我可以复制所有的表格和公关的问题是,我不能把视图作为一个视图,他们只是保存为一张表。 解决这个问题我想如果我从server1.views中复制查询并在server2.database1.views中执行该查询我将拥有该视图,因为我已将所有对象复制到server2.database1中。 ,但我得到一些错误: 一个是“格式”功能,他们在SQL Server 2016中使用,它在2005年没有标识。 我改变了所有的“格式”功能并执行查询,现在我留下了这个错误: 消息15135,级别16,状态8,过程sp_addextendedproperty,行37 [批处理开始行35] 对象无效。 'dbo.v_RASAM'不允许扩展属性,或者该对象不存在。从SQL Server 2016到SQL Server Management Studio 2005的ETL

因此查看我想复制调用:dbo.v_RASAM 而且我确定(因为我检查了过程名称sp_addextendedproperty)sp_addextendedproperty存在! 所以问题是我有可能过程遵循一些需要更改的语句,因为“视图”具有在sql server management studio 2005中不可用的函数?(这可能听起来很愚蠢,但我想起任何可能的原因这个问题) 我怎么能有这些意见复制到server2.database1任何其他方式,我还没有尝试过?

任何帮助或想法将不胜感激! 非常感谢你的时间!

+0

你可以访问在同一网络上的两个实例吗?如果是这样,那么你可能想考虑使用链接的机翼推动数据。 –

+1

有可能恢复从2016服务器到2016服务器的备份,然后更改兼容性在恢复的备份上,从2016年到2005年的可用性级别进行备份,然后备份该版本,这将允许您将其恢复到2005年的实例。诚然,没有尝试过,但可能值得一试。 – CodeMonkey1313

回答

1

您可以尝试使用生成脚本功能将所有对象和数据(如果需要)编写为脚本文件并在目标实例上执行该脚本文件。

在SSMS 2016年,右键单击DB>任务>生成脚本..

有下的“高级”按钮,相当多的选项,在向导中,你可能需要调整。

+0

这将是工作,如果我的目标服务器是2016年,我的来源是2005年。 但正如我说的由于某种原因,我需要从2016年转移到2005年的意见,我得到的脚本错误,因为例如“格式”功能不识别在SQL 2005中,我有我们在2016年的服务器视图 –

+1

在这种情况下,你没有选择,只能重新写任何目标代码向后兼容 – innomatics

+0

正确的,非常感谢你@innomatics! –

0

在我的案例中,我找到了解决方案通过更改视图脚本中Format(Convert(int,databse.table.column),'#### - ## - ##')的所有“格式”与替换(转换(varchar(20),演员(database.table.column作为日期时间)

这是真的很少有人有这个问题,但唯一的方法是重新构建查询从头开始尝试兼容2012年或2016年到2005年手动!

相关问题