標籤:blog http io ar os 使用 sp 資料 on
本文討論如何把資料庫從SQL Server 2008版本降低到2005,因為在本地開發是以SQL Server 2008 Express Edition版本進行的,而主機供應商現在提供的MSSQL只支援到2005,所以需要把資料庫版本給降下來。這個過程挺麻煩的,首先需要有SQL Server Management Studio 2008(簡稱SSMS),現在先來下載它。
SQL Server Management Studio 2008 Express 下載(如 果你用的是XP作業系統,下載那個x86的版本,即32位的版本,如果是Windows 7並且是64位的作業系統,下載那個x64版本),選擇那個“全新安裝”,在安裝的過程中,電腦系統內容會受到嚴格的檢查,以確保資料庫安裝成功。遇到 失敗的組件(即有紅色叉號的組件),不要關閉安裝視窗,一律到網上找相關的組件(最好是微軟官方下載網站)安裝,安裝一個,重試一次(安裝視窗上部有一個 “重新運行”按鈕),直到全部失敗的組件安裝上(跳過及警告的就不管它了),SQL Server 2008及管理平台(以前叫企業管理器)就安裝成功了。注意在安裝過程中,VS2008可能需要安裝SP1(註:不是.NET 3.5的SP1),這個安裝相當的慢,要耐心。
小知識:SQL SERVER對微軟來說是有組建的,如果在SSMS或者VS2008裡邊看到的資料庫版本為10.0的字樣,就是SQL SERVER 2008,如果版本為9.0的字樣,就是SQL SERVER 2005。
為 河南農藥資訊網開發的網站,一直是在SQL 2008上開發的,但虛擬機器主機供應商的SQL資料庫目前只提供對SQL2005的支援,所以要把已經開發好的資料庫(裡邊含有用的資料)降低到 SQL2005可以識別,或者說降級到SQL2005。具體辦法如下(已經下載並安裝了SSMS2008):
1、點擊“開始 > 程式 > Microsoft Sql Server 2008 > SQL Server Management Studio”
2、 在出現的“串連到資料庫伺服器”對話方塊,伺服器類型選“資料庫引擎”,伺服器名稱選擇原生SQL Server(一般是主機名稱/SQL伺服器),點擊下拉框可以找到,身分識別驗證選“Windows 身分識別驗證”(一般本地SQL Server都是這種驗證,如果選“SQL Server身分識別驗證”,需要使用者名稱及密碼,互連網上的資料庫是這種身分識別驗證,主機服務提供者會提供使用者名稱及密碼)
3、SSMS介面出來,在物件總管中的“資料庫”目錄中尋找你要轉換的資料庫,如果沒有,右擊“資料庫”目錄,在出來的捷徑功能表中點擊“附加...”,新出現一個交談視窗,點擊右邊窗格中的“添加...”按鈕,找到你要轉換的資料庫,點擊“確定”
4、在要轉換的資料庫上右擊,出現的捷徑功能表中點擊“任務 > 產生指令碼”,在“指令碼嚮導”中點擊“下一步”,選中你要轉換的資料庫(如果前邊已經選中,這次就是選中狀態),勾選下部的“為所選資料庫的所有對象編寫指令碼”,如
Server 2008 轉換為 SQL 2005 資料庫 指令碼產生" alt="SQL Server 2008 轉換為 SQL 2005 資料庫 指令碼產生" src="http://static.oschina.net/uploads/img/201411/12143253_Fzti.jpg">
5、點擊下一步,現在進入配置的最關鍵階段:
由於產生的指令碼最後是在主機供應商已經建好的資料庫中產生表,所以注意按照如下的配置進行:
編寫建立資料庫的指令碼:False (主機供應商已經有資料庫,這裡只產生表,不再產生資料庫)
編寫資料的指令碼:True (因為有用的資料要一併產生)
編寫Use DataBase的指令碼:False
為伺服器版本編寫指令碼:SQL Server 2005 (產生2005的指令碼,而不是預設的2008指令碼,見)
Server 2008 轉換為 SQL 2005 資料庫 指令碼產生" alt="SQL Server 2008 轉換為 SQL 2005 資料庫 指令碼產生" src="http://static.oschina.net/uploads/img/201411/12143253_W2xy.jpg">
6、按照下邊圖片的選項設定,點擊“完成”,即可完成資料庫由SQL Server 2008到SQL Server 2005的轉換。
Server 2008 轉換為 SQL 2005 資料庫 指令碼產生" alt="SQL Server 2008 轉換為 SQL 2005 資料庫 指令碼產生" src="http://static.oschina.net/uploads/img/201411/12143254_BDMO.jpg">
後 註:然後根據主機供應商給的資料庫,直接到網路資料庫上匯入指令碼;或者再次使用本SSMS串連到主機供應商的資料庫上(這時肯定是SQL Server身分識別驗證,需要提供使用者名稱及密碼),通過網路資料庫“建立查詢”的方法將剛才產生的指令碼粘貼到建立查詢時段,點擊“運行”,即可將全部資料 表、預存程序、約束關係等匯入主機供應商的資料庫中,更具體問題,要與主機供應商聯絡。
另外,如果是把資料庫類似於備份一樣產生指令碼,以後再完整地產生這個資料庫,那麼第5步應該這樣做:
編寫建立資料庫的指令碼:True (資料庫一併產生)
編寫資料的指令碼:True (包含有用的資料)
編寫Use DataBase的指令碼:True
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
用SQL2008匯出資料庫的時候,會導致資料庫中的主鍵、索引、標識等資料庫約束丟失。這裡以SQL2008為例,介紹一下如何能導資料,又可以保持主鍵、索引、標識等資料庫約束不丟失的方法。
首 先,在本地sql2008上面的資料庫上右鍵-任務(T)-產生指令碼(E) ,點擊下一步,勾選下面的“為所選資料庫中的所有對象編寫指令碼”-點擊下一步-可以看到“編寫資料的指令碼”(SQL2005無此選項)後面是False, 雙擊改為TRUE,拉下來-可以看到“為伺服器版本編寫指令碼”,雙擊選擇SQL2005(根據遠端資料庫版本而定,我要導的資料庫是SQL2005所以選 它)-點擊下一步-再點擊下一步-點擊“完成”,指令碼出現在查詢分析器中。接下來把指令碼做一下改動,以適合遠端資料庫使用。一般要改兩個地方,第一個地方 就是第一行 USE [DATABASE] 這個根據遠端資料庫而定,我的遠端資料庫是sq_congxun,所以第一行改為 USE [sq_congxun] 。第二個地方就是改資料庫結構描述,一般本地是用dbo,而遠端資料庫是以資料庫使用者為架構,所以按Ctrl+H鍵,彈出替換視窗,把dbo替換成 sq_congxun,至此指令碼改造完成。接下來開啟遠端資料庫,建立查詢,把剛剛的指令碼複製進去,執行,OK,恭喜你,完成了!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SQL2005 SQL2008 遠端連線配置方法 收藏
SQL2005:
打 開SQL2005的組態工具-->SQL Server 2005介面區配置器-->服務和串連的介面區配置器 -->Database Engine -->遠端連線,選擇本地串連和遠端連線並選上同時使用Tcp/Ip和named pipes.
(附:如何配置 SQL Server 2005 以允許遠端連線:http://support.microsoft.com/kb/914277/zh-cn )
SQL2008:
打 開SQL Server Management Studio-->在左邊[物件總管]中選擇第一項(主要資料庫引擎)-->右鍵-->方面-->在方面的下拉式清單中選擇 [介面區配置器]-->將RemoteDacEnable置為True.
Express:
如果XP有開防火牆,在例外裡面要加入以下兩個程式:
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe,
C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe
SQL Server 2008 轉換為 SQL 2005 資料庫 指令碼產生