SQL Server | The Will Will Web

The Will Will Web

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

資料庫專案無法寫入目標資料庫時的解法 (調整欄位大小時)

Visual Studio 2010 Premium 企業版 資料庫專案 功能在進行 結構描述比較 (Schema Compare) 時,當你的來源資料庫特定表格某個欄位的欄位大小變更時(變小)可能會引發「無法成功更新目標結構描述。如需詳細資訊,請參閱 [錯誤清單] 視窗。」的錯誤(The target schema could not be updated successfully. For more information, see the Error List window.),此時就必須用今天的方法來解決。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

VPN 連線後 SQL Server 發生「無法產生 SSPI 內容」錯誤

由於開發人員的電腦環境都比複雜的,像我們公司內部就有架設 AD ( Active Directory ) 而登入到客戶的 VPN 環境下也有自己的 AD,像我之前寫過的【主機於 AD 環境下設定 VPN 時需注意 DNS 設定是否正確】文章就是因為撥接上 VPN 之後所發生的問題,原本以為問題就這樣解決,但是事實並非如此,當我撥接上 VPN 之後若要再用 Windows 驗證的方式連接公司內部 SQL Server 時,卻會發生【 無法產生 SSPI 內容。 (Microsoft SQL Server) 】的錯誤,直到剛剛才找到解決之道。

... 繼續閱讀 ...

介紹好用網站:Microsoft | 語言入口網站 (微軟的翻譯對照表)

最近遇到一個 SQL Server 連線問題,管理 SQL Server 資料庫的人一直從特定壹台主機得到【建立具有整合式安全性的連接時 SSPI 交握失敗,其錯誤碼為 0x8009030c; 此連接已經關閉。 [CLIENT: 192.168.xx.xxx]】的錯誤訊息,你知道的,身為一個專業人士遇到沒見過的錯誤訊息第一件事就是上網搜尋有沒有人問過相關問題,不過當這中文訊息查到的訊息少個可憐,外加所有資料都是沒有解答的討論,你會怎麼辦?是的,我跟你一樣,先企圖翻譯成英文再去查,通常會有滿意的答案!

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

Visual Studio 2010 資料庫專案 - 結構描述比較選項設定筆記

Visual Studio 2010 Premium 企業版 資料庫開發 功能非常的強大,可提供完整資料庫的變更管理並進一步達到版本控管的目的,但在做 結構描述比較 (即資料庫結構比對) 時若使用預設的資料結構選項會有些小問題,主要是正式機資料庫測試機資料庫因為環境不一致所造成的小差異會導致在做結構描述比較時讓目的資料庫發生異常,例如登入權限消失、資料庫無法存取、…等狀況,所以對於資料庫專案需要同時套用於多種不同資料庫環境時,就必須要能忽略一些資料庫結構比對的項目才能順利的操作。

... 繼續閱讀 ...

分享幾個 LINQ to SQL 執行各種 Join 查詢的技巧

我發現許多人對使用 LINQ 執行 JOIN 查詢並不是那麼的熟悉,而且語法也不見得像 T-SQL 那樣直覺,但事實上只是我們比較熟悉 T-SQL 的語法與資料庫架構而已,當我們換成 ORM (Object-relational mapping) 技術後所有對資料的操作必須全部改以「物件」與「實體」來思考,所以在這轉換的過程經常轉不過去,連我自己也有時會忘記怎麼寫,也經常利用 Linq Samples and the Sample Query Explorer 幫我查出適當的寫法。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

講解 SQL 連線字串中關於 Application Name 參數的用途

在有多個應用程式使用相同 SQL 登入帳號存取 SQL Server 資料庫時,經常會無法在 SQL Server 管理介面中分析連線來源到底是誰,例如同時有一個網站與另一個 Windows 服務同時都在運作並連接資料庫的時候。遇到這種情況如果當資料庫發生負載過重時經常無法有效區別出到底是哪個應用程式發生問題,這時就可以利用今天的技巧來協助分析。

... 繼續閱讀 ...

SQL2008R2 Reporting Services 報表產生器 3.0 快速上手

今天去客戶那邊教了一堂 SQL Server 2008 R2 Reporting Services 基礎課程,雖然短短三個小時能教的東西不多但重點應該都點到了,而且快速上手之後只要有資料在手,透過內建的報表產生器 ( Report Builder ) 應該隨時都很迅速的製作出報表,算是非常方便的報表開發工具,以下就是使用報表產生器快速上手的密技。

... 繼續閱讀 ...

SQL2008R2 Reporting Services 組態管理員 設定筆記

一般來說透過 SQL Server 2008 R2 的安裝界面在安裝的過程就能將 Reporting Services 的組態給設定好,不過也有可能在事後修改 Reporting Services 的組態設定,設定過程也算十分直覺,比較有可能出問題的地方應該就是有些專有名詞看不懂之類的,不過就算再怎麼不懂,按圖施工應該也是能成功的,以下就是設定的過程圖示。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...