最近實施一箇中型的門戶網站,在項目編碼已經結束測試完成後,發佈服務器上,由於之前用到只有SQl2000,當前基於開發的SQL2005+VS2008,環境是.NET 3.5版本,這個時候就出現許多問題.一一描述並提供解決方案:
A:版本問題—這是你第一個必須面對的而且是核心問題:
由於在實施中用到Row_Number()函數進行簡單的數據分頁,很明顯只有SQl2005以上版本才支持,首先讓咱們來看看數據庫版本的具體劃分:
版本得到方法以下:
sql
1![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() |
SQL2000版本號查詢結果:數據庫
SQl2005版本號查詢結果:服務器
在微軟官方上看到版本區分以下:SQL2000和SQL2005版本號對好比下:ide
安裝SQL2005時若是具備引導程序問題不大,若是壓縮包中只是Server和Tools文件夾時:須要注意安裝順序很是重要,應該首先安裝Tools目錄下而後在安裝Server目錄服務器引擎,若是隻安裝Tools客戶端工具,沒有安裝Server目錄下數據引擎狀況下,會致使sql2005默認連接的是SQL2000數據引擎也就是8.0版本,致使Row—Nummber等函數不支持的現象發生.問題關鍵是安裝SQL 9.0版本數據庫引擎既Server目錄下,並從新生成一個新的數據庫實例而非默認實例:
這樣作主要目的是在SQlClint容易區分不一樣版本下不一樣的數據庫實例,連接時取新創建的數據庫實例引擎,執行T—SQL語句正確執行,查看版本是9.0,這點是頗有必要,若是SQL語句出現不可預料的錯誤,數據引擎版本問題是很隱蔽而關鍵的問題,這也是我不斷在前面不斷區分和識別數據版本的用心所在。
安裝完SQL2005後,開始準備用SQL2000客戶端工具鏈接SQL2005,結果報告不能用SQL2000客戶端工具鏈接,只能用SQL2005客戶端工具鏈接,後證實SQL2005客戶端工具能夠同時鏈接SQL2000和SQL2005。
B:多版本下連接數據庫
當數據庫創建後另一個問題就是多版本下連接數據庫:其實在同一臺機器上同時安裝多個版本的數據包括orcal理論上都是能夠的,函數
1![]() 2 ![]() |
如上連接會報錯的,由於先安裝的SQL2000後裝上SQL2005,DataSource經過.默認來指向的是SQL2000數據庫引擎,回報出沒法找到IssueDB這個數據庫對象,一樣默認數據庫通訊端口1433也被SQL2000佔用,後來經過官方資料證實:SQL2000服務器用的端口始終是1433端口,而SQL2005使用的是動態端口,
在多版本下創建SQl2005一個新的數據庫實例後,鑑於項目須要建議開闢新的通訊端口,連接字符竄寫法以下:工具
1![]() 2 ![]() 3 ![]() 4 ![]() |
SQl2005配置步驟以下:
(1):在 "程序—>配置工具—>SQlServer配置管理器"運行起來:選擇SQl Native Client配置下客戶端協議 如圖顯示:測試
(2)選中Tcp/ip選擇屬性配置 截圖以下:網站
修改完成後須要從新關閉再次啓動SQlserver服務配置纔有效,經過程序鏈接數據庫SQl2005,連接正常.
編碼