巧用連線請求和調查SQL Server的提高

iSQlServer發表於2010-01-05

  關於切換資料庫名稱的簡單方式的問題,直接的答案是,這是不存在的。為SQL Server的一個例項定義一個別名是可以的,但是無濟於事。為另一個資料庫中的單獨物件定義同義詞名也是可以的。只是目前沒有一種方法可以定義別名比如提供非直接參照的物件到一個資料庫中或者一個模式中。我能為同事提供的最佳解決方案是在具有儲存過程的資料庫中會每張表和每個檢視建立同義詞,這些表和檢視是儲存過程可能會在資料庫中參照的。接著,當程式碼投入生產時,寫一個指令碼來修改所有同義詞以便使用正確的資料庫名。建立同義詞在技巧“在SQL Server 2005中使用同義詞的優劣”中有描述。另一種解決方法是使用動態SQL寫所有的查詢並把目標資料庫的名稱儲存在一個設定表中或者把它作為一個引數傳遞。動態SQL把你的程式碼暴露,這可能會導致SQL 注入攻擊的發生,因此這應該被當作最後一種選擇。

  十年前,我有一個關於SQL Server 改進功能的建議。當時我能找到的交流建議的唯一途徑是一個帶有所有微軟產品建議的郵件地址。我傳送了自己的建議但是沒有任何迴音。我的郵件沒有得到任何肯定,也沒有電話,在網站上沒有交流建議的地址,最後也沒有回覆通知我微軟打算如何處理我提出的建議。這不是很令人滿意,因此我從那以後再也不那麼做了。

  我把漏洞報告給產品服務(PSS)的經歷卻是非常不同的。2005年的時候,我在Visual Basic編輯器中遇到一個漏洞。我和我的客戶確定把這個問題告訴產品服務是非常重要的,也有必要讓他們提出一種解決方案。PSS確認這確實是編輯其中的一個漏洞,也沒有收費。更重要的是,他們解決了這個問題並且在3個月內為我們提供了一個修補程式,這個程式最後成了Visual Studio的一個服務程式包。

  隨意報告問題和不用為許可權付費的情形在過去幾年改變了。現在有一個網站Connect.Microsoft.com提供了微軟和個人以及團體開發人員之間的雙向溝通。Connect.Microsoft.com/SQLServer致力於開發我們最滿意的產品。它有連結到新的服務程式包和試用版本,也有連結到SQL Server的論壇,以及我最感興趣的Submit_Product_Feedback連結。

  連線允許你查詢產品反饋,看看是否有人提供你感興趣的建議。你可以不僅僅是尋求建議。你可以提出自己的意見,檢視建議的狀態並且為別人的建議評價其重要性。做任何超越查詢的事情,你需要有一個Windows Live ID並且在該網站上填寫個人資料。

  要解決我同事的問題,我首先在論壇“資料庫同義詞”上查詢一個類似的問題。有7個可能性,結果顯示如下:

圖一

  第一個物件是關閉的,但是第二個311079看起來正是我想找的。

圖二

  該描述告訴我,進入該論壇的Aaron Bertrand和我尋找同樣的功能。它也告訴我現在還沒有公開發布的工作區。這讓我對同事的問題有了更高的自信,那就是我們錯失什麼。

  當然,我註冊並把該貼等級列為5。只有7個等級才出現了一年多一點,所以我並不驚訝該功能還未新增到SQL Server 2008中,但是我們希望將來能夠新增。如果你喜歡這個主意,那麼請為它評級。每一個投票都會有幫助。我也將該貼新增到我的檢視列表中,這樣我就能得到及時的郵件,知道每個更改的狀態或者是否有人釋出一個工作區。

  我之前提過建議。專案郵件用於標量表達函式,在一年半之後,它有35個評分並且仍然開啟。專案398203報告一個sp_rename中的漏洞,該漏洞就是,不能再系統表的文字中改變函式或者儲存過程的名稱,該系統表儲存允許sp_help_text錯誤顯示的原始名的模式。該漏洞的解決狀態是“不能修復”。因此我們不得不繼續深受它。

  建立這個連線網站顯示了微軟對團體開發人員的態度的巨大變化。他們採取建議並且有所回饋。我並不是喜歡我收到的每一個回覆,但是至少它是一個回覆。連線也提供了一種方式可以驗證你遇到的仍然沒有解決方法或者工作區的問題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-624347/,如需轉載,請註明出處,否則將追究法律責任。

相關文章