Category: SQL 2005

Attach或Retore SQL資料庫到別台,必須要先Drop User才能重設User權限,這個我很早就有經驗。 這次的問題有點不一樣,在Drop User時出現以下訊息: The database principal owns an assembly and cannot be droppe...

使用SSMS SELECT XmlStringCol FROM myTable,發現由於SSRS的結果字元數限制(65535個字元),在結果視窗複製欄位內容再到Notepad貼上,XML的後半截不見了。 雖然這個限制可以修改(如下圖),但一時想要展現高超的T-SQL指令技巧,我決定把它轉成XML,...

當系統存取的資料庫伺服器超過一台,或涉及異種資料庫平台間的資料整合,常常就會伴隨分散式交易(Distributed Transaction)的需求。這門進階的學問,在運用的實務上,瑣碎曲折的小細節還挺多的。 以下是我在RUN!PC發表過的文章,整理了使用.NET程式整合MSDTC做分散式交易的...

最近上了一批SSRS的新報表,使用者抱怨列印時,會出現"列印時發生錯誤。(0x8007F304)"的錯誤訊息。 印象中,Reporting Service由SQL 2000版本昇級至SQL 2005的SSRS後,有遇過類似問題,絕大部分的原因都來自於列印時會用到的一顆ActiveX元件--RSCl...

在設計資料庫相關程式時,連線字串最好能以加密方式存在config檔案裡;再進一步,最好連解密字串的機制都封裝在特定的資料存取元件中,開發人員及呼叫端程式只需傳入SqlCommand或更高階的抽象化資料物件,就可以完成資料庫存取作業,不必也不能得知連線字串的相關細節。 只是依我自己的實務經驗,有時直接...

SQL 2000的Reporting Service在報表錯誤時會將錯誤訊息顯示在網頁上,但SQL 2005的SSRS在錯誤時只會傳回: 如需有關此錯誤的詳細資料,請導覽至本機伺服器電腦上的報表伺服器,或啟用遠端錯誤(原文: For more information about this erro...

一直以為BULK INSERT就不會記Log,結果今天跌了一跤... 我下的語法如下(錯誤示範,小朋友不要學) TRUNCATE TABLE RESD BULK INSERT RESDEFROM 'C:\DataProc\Output\RESD.txt'WITH(   ...

之前介紹過如何用Profiler抓到Deadlock事件,在實務上,Deadlock的發生時機不是很容易掌握,而且多發生在尖峰時刻,一直開著Profiler將是挺沈重的系統負擔。因此,我認為以錯誤事件的態度面對Deadlock, 要求其在發生時留下Log是比較有效率掌握Deadlock相關情報(尤其...

本來以為自己堪稱台灣地區Trouble-Shoot MSDTC問題的權威,沒想到這幾天陰溝裡翻船,為了解決一台新灌XP SP2無法啟用分散式交易的問題,耗掉近一個人天... 同事回報,照著我先前的KB設定了分散式交易,但是執行以下的Code,程式卻會卡在第11開啟Oracle Connection上...

最近在處理表單引擎的Deadlock問題,由於引擎核心以物件導向方式開發,很難為了資料庫的更新問題去挪動物件的呼叫順序。但還是努力做了調整,每天Deadlock的發生次數終於壓到個位數,但要100%避免看來是不可能的(至少以我的能力來說是如此)。既然逃不掉,就乖乖面對吧! 一般處理Deadlock...