The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

解決 SQL Server 資料庫無法啟用 Service Broker 的問題

我們今天有個案子遇到一個很緊張的狀況,因為正式機的 SQL Server 資料庫沒人管一段時間了 (因為網站還沒正式對外上線),結果資料庫的交易記錄竟然把硬碟給塞爆了,這導致資料庫再也無法寫入資料而網站也自然無法使用,我們得知狀況後立即告知負責管理資料庫的 DBA 處理狀況。

... 繼續閱讀 ...

善用 SQL Server Management Studio 選項設定DB作業環境

我們每天與 SQL Server 資料庫為伍,絕對不能跟 Management Studio 不熟,就像我們一般日常做程式開發時一樣,開發工具的「選項」設定多少都會調整一下方便我們工作。但是工作環境切換到 Management Studio 之後我卻發現許多人不知道要善用 Management Studio 的 [選項] 設定,今天我就來分享一些我常用的 [選項] 設定值 (非預設值)。

... 繼續閱讀 ...

講解 SQL 連線字串中關於 Persist Security Info 參數的用途

可能許多人不知道資料庫連線參數 (Connection String) 中的 Persist Security Info 參數是做什麼用的,且用到的機會也很少,但我們這幾天就遇到了一個跟 Persist Security Info 參數有關的錯誤,特別分享一下處理的經驗。

... 繼續閱讀 ...

如何讓使用中的資料庫中斷所有連線以執行資料庫更新動作

最近有個專案由於需要對資料庫修正設定,必須開啟 SQL Server 2005 的查詢通知(Query Notification)功能,由於開啟查詢通知功能要啟用 Service Broker,而設定時需要中斷所有與該資料庫的連線才能設定成功,我們一般的實務作法是先將資料庫轉為「單人模式」再進行操作,但因為網站並沒有斷線,所以當透過 Management Studio 的 GUI 介面對資料庫切換至單人模式後,這個「單人」卻立即被網站的連線給搶走!

... 繼續閱讀 ...

SQL Server 透過 TCP/IP 遠端連線時如何使用非 1433 埠號

最近客戶提供了一台 SQL Server 2008 的測試機給我們,不過特別的是他們提供的 SQL Server 2008 並非使用預設的 1433 埠號(Port)。一般來說,網路連線到非預設埠號時,都會使用冒號 ( : ) 分隔,不過當我在 SQL Server Management Studio 中輸入 192.xxx.xxx.111:14333 這樣的格式連線時,卻會出現以下錯誤:

... 繼續閱讀 ...

如何用簡單的 SQL 技巧取得特定日期是否為週末假日

在 SQL Server 中有個 DATEDIFF 函數可以計算出兩個日期間的差距,例如若要算出兩個日期的差異「天數」可以用以下語法得知:

... 繼續閱讀 ...

讓 SQL Server 告訴你有哪些索引應該被重建或重組

我去年有一段時間睡覺前都在看 SQL Server 2005 證照的書(MCTS 70-431),從中學到許多資料庫實際運作的技術細節,例如: 索引的結構。當資料庫中的索引碎裂(index fragmentation)程度過高時,索引的效率就會大大降低,為了避免這個問題發生,就必須定時替資料庫健檢(維護資料庫),也就是進行索引重建(rebuild)或索引重組(reorganize)。

... 繼續閱讀 ...

微軟找到 SQL Server 的一個重大弱點

前幾天我才寫 SQL Server 2005 SP3 已出爐(Released),今天就看到另一個 SQL Server 的重大弱點公布,而且影響的 SQL Server 版本遍及 SQL Server 7.0 , SQL Server 2000 到 SQL Server 2005 等,只有以下幾種版本能倖免於難

... 繼續閱讀 ...

在 SQL Server 中如何成功卸離資料庫

有時後我們為了要將資料庫的資料檔(*.mdf)與紀錄檔(*.ldf)複製出來,會需要先暫時卸離資料庫(Detach Database),因為卸離資料庫需要有資料庫的獨佔存取權,但是不管是在測試機或正式機上,資料庫往往都會因為還有連線存在導致資料庫無法卸離,對於這點我通常有兩種作法。

... 繼續閱讀 ...