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年手動!

相關問題