The Will Will Web

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

介紹好用工具:mssql-scripter (自動將完整資料庫匯出成 T-SQL 的神器)

遷移 SQL Server 資料庫是一件感覺好像很簡單,但做起來可能會很麻煩的工作。其實透過 SSMS 就可以做到很多種不同的資料庫遷移方法,但我想找一個能夠更方便的方式,透過命令列的方式自動化整個遷移過程,最近我找到了這個 mssql-scripter 工具,完全可以符合我的需求。這篇文章我就來說說我的應用情境,以及 mssql-scripter 工具的使用方式。

... 繼續閱讀 ...

SQL Server 快速產生還原資料庫 T-SQL 指令碼的技巧

去年曾經分享過一篇【觀念釐清:SQL Server 完整備份、差異備份、交易記錄備份】解釋 SQL Server 備份觀念,看懂的人應該能清楚理解資料庫的備份過程與依序還原資料庫的方法,我以往都會認為這種依序還原資料庫的方法實在太沒效率,真的遇到資料庫災難的時候需要花不少時間準備還原資料庫的 T-SQL 指令碼然後才能批次執行將資料庫還原,不過最近意外發現原來在 Management Studio 有個非常棒的小技巧可以幫我快速產生還原資料庫的 T-SQL 指令碼,讓你不管是本機資料庫還原異機資料庫還原都能非常快速的完成!

... 繼續閱讀 ...

SQL Server 如果本機管理者與 sa 帳戶都無法登入怎麼辦?

前天公司的開發用資料庫主機的硬碟異常,為了拯救資料所以我把整個資料庫主機重灌了,安裝好之後意外的把資料庫裡的本機管理者登入權限移除 (BUILTIN\Administrators),隔天公司其他人由於原本的帳號都登入不了,因此改用 sa 嘗試登入 (重灌後密碼變了),結果卻嘗試到連 sa 帳戶都被鎖定,你說我該怎樣解決呢?^^

... 繼續閱讀 ...

DBCC CHECKTABLE 無法檢查表格名稱中有小數點的情況

在我們代管眾多客戶的 SQL Server 資料庫中其中有個客戶的資料庫非常特殊,他們的資料表命名都會有小數點在內,例如:[dbo].[Order.Profile],至於為什麼這樣命名已經不可考 (我猜是為了讓表格在 Management Studio 裡排序的比較整齊吧?!),這樣的設計在開發上的確沒有什麼問題,只要適切的加上中括弧 ( [xxxx] ) 即可,但是在管理面來說,就不是那樣可愛了,像我昨天為了要執行 DBCC CHECKTABLE 來檢查資料表時就試了好久無法成功,直到詢問微軟技術支援中心才得到解答。

... 繼續閱讀 ...

如何清除 SQL Server 的 Database Mail 紀錄與發送失敗郵件

SQL Server 提供的 Database Mail 功能非常好用,設定也很簡單,不過有在使用的人一定會遭遇到運作記錄過大的問題 ( Database Mail 紀錄 ),因此當到了需要清除的時候,就可以參考此篇文章說明進行記錄清除等作業。另一個使用的機會就是當有大量 Database Mail 郵件被產生或因為 SMTP 異常導致失敗時若需要批次刪除這些大量郵件,也可以透過系統內建的預儲程序進行刪除,以下是我的資料庫管理筆記。

... 繼續閱讀 ...

取得 SQL Server 資料庫正在執行的 T-SQL 指令與詳細資訊

今天有個客戶的資料庫發生了異常的鎖定狀況,但並不是鎖死 (Deadlocked) 的情況,所以必須要進一步分析才能知道問題的主因,不過在分析的過程中卻遇到了一個問題,那就是雖然知道是哪一條連線(SPID)出問題,但卻不知道應該如何快速查出這條有問題的連線實際執行的 T-SQL 為何,唯有查出這條 T-SQL 實際執行的內容我才能找出應用程式中的哪一段程式出錯,這個技巧算是非常實用喔!

... 繼續閱讀 ...

如何刪除 SQL Server 資料庫中重複的資料 (兩種不同解法)

今天在客戶端發現資料庫中存留有一些重複的垃圾資料,因此想透過 T-SQL 指令直接刪除重複的資料,不過一般透過常見透過 GROUP BY 的方式刪除重複資料卻不適用於今天的狀況,因為我們資料表的主索引鍵 (Primary Key) 是 uniqueidentifier 類型,不能透過 MAX 彙總函示運算,這時就要利用 OVER 子句並搭配 PARTITION BY 語法才能幫我完成任務。

... 繼續閱讀 ...

如何快速搜尋整個 SQL Server 資料庫中所有表格所有欄位中的所有資料

最近在研究 TFS2010 的東西,不過這幾天慢慢的後悔安裝 TFS2010 繁體中文版,有些翻譯實在讓我太痛苦了,因為我現在看的資料都以英文為主,但當操作介面翻譯成中文後有時卻難以對應出影片或文章中講的項目到底在我的 Team Explorer 中到底是什麼項目,因此設法搜尋資料庫中上百張表格的所有資料,看看到底有沒有可以修改的地方。

... 繼續閱讀 ...

重建資料表時應注意 Management Studio 選項設定是否完整

上星期我們有台 SQL Server 出了一些狀況,有個資料庫其中一個資料表發生了一些問題,主要是發生分頁錯誤的情況,由於資料類型是記錄檔,不是一定需要存在線上,但筆數有三百多萬筆非常佔空間,當確認資料匯出後想要將目前的資料全數刪除,決定先 DROP TABLE 再 CREATE TABLE 比較快,但使用 Management Studio 在做重建表格時必須特別注意選項設定是否正確!

... 繼續閱讀 ...