| | | 16 | | 52,417 |
在我原本狹隘的SQL知識裡,Deadlock發生情境需要兩個Process A與B跟兩個Table X與Y搭配演出: A鎖定住X想更新Y,B鎖定Y等著要更新X,產生無解的僵持,再由SQL二者擇一選為犠牲者,令其失敗來成立另一個Process。 直到最近處理一起Deadlock案例,才又長了見識...
| | | 5 | | 33,632 |
最近遇到的小需求,要計算資料表中某一數字欄位所佔百分比,例如: ItemId GroupId CostAmt ------ ------- -------- X1000 A 50 X1001 A 250 X1002 A 200 X1003 ...
| | | 0 | | 8,514 |
一段使用很久的程式今天忽然出錯,追查原因,是一段古早寫的FOR XML查詢出了問題。 程式用SqlCommand執行"SELECT ... FROM ... FOR XML RAW('Boo’)”,最近因資料異動,結果傳回超長的字串,透過SqlDataReader讀取時,只得到最前端...
| | | 4 | | 26,746 |
在查SSMS的Intellisense為何失效時,無意看到demo的介紹文,發現好物一枚—dbForge SQL Complete! 好東西的推薦文永遠不嫌多,故特別PO文一篇介紹給讀者朋友們周知。 dbForge的構想與SSMS 2008相同,就是在輸入T-SQL時給予提示及自動完成,但...
| | | 17 | | 21,564 |
在設計查詢介面時,下拉式選單是很常見的條件選取方式,而往往我們都會再加上一個"不限條件"選項,允許使用者不限制條件,列出所有項頁。舉例來說: 在設定查詢地區的下拉選單(例如: ddlArea),除了列出基隆市、台北市、台北縣、桃園縣...等各縣市Option外,常會再多一個"所有地區"選項,將Op...
| | | 10 | | 15,361 |
同事詢問關於Procedure內是否會自動包成Transaction的問題,我的認知是SQL要額外下SET XACT_ABORT ON,但Oracle則預設會自動包成Transaction。記憶有些模糊,所以索性做個實驗最準。 分別在SQL, Oracle寫了Procedure,先塞入兩筆資料,第...
| | | 2 | | 21,804 |
今天要設定Windows 2008防火牆使用SQL分散式交易,查資料時發現了檢測MSDTC連線的新工具--DTCTester。 簡單來說,它是用以取代DTCPing的改良版。主要優點是只需在Client執行,不像DTCPing得在Client,Server都跑互連,而且由於它會真的連線SQL Se...
| | | 11 | | 69,151 |
手動對資料庫下指令是一件恐怖的事,稍一操作不慎,就有可能把整個系統給毁了。 理論上,吾人應該極力避免手工更動資料這等可恥行徑。只要系統考慮得夠周詳,預先料想到所有可能出現的詭異狀況,一一提供相關的介面,經過程式邏輯檢查後才對資料進行處置或修正,不可能出現需要手動改資料的狀況。這是一個好的系統應...
| | | 3 | | 20,899 |
今天看到保哥一篇關於LINQ to SQL分頁問題的文章,裡面有一段範例是利用'User ' + cast(cast(rand() * 100 as int) as varchar(3))的技巧連續執行十次產生十筆測試用的資料。 這讓我想起之前在做CSV字串分割成陣列UDF時意外學到的技巧,可...
| | | 9 | | 22,468 |
【2008-10-30更新】依本文做法仍無法更新RSClientPrint.cab的朋友,請參考我的第三帖藥方。 自從貼出安裝KB956391後SSRS不能列印問題後,陸續又接獲同事及網友的回報,才慢慢釐清這個事件的始未... SSRS不能網頁列印的原因源於RSClient Pr...
| | | 4 | | 15,421 |
在設計資料庫相關程式時,連線字串最好能以加密方式存在config檔案裡;再進一步,最好連解密字串的機制都封裝在特定的資料存取元件中,開發人員及呼叫端程式只需傳入SqlCommand或更高階的抽象化資料物件,就可以完成資料庫存取作業,不必也不能得知連線字串的相關細節。 只是依我自己的實務經驗,有時直接...
| | | 3 | | 15,163 |
今天在一台SQL 2000上做BULK INSERT,語法是 BULK INSERT PicLibrary FROM 'C:\Output\PicInfo.txt' WITH ( BATCHSIZE = 1000, FIELDTERMINATOR = '\t', ...
| | | 9 | | 40,495 |
一直以為BULK INSERT就不會記Log,結果今天跌了一跤... 我下的語法如下(錯誤示範,小朋友不要學) TRUNCATE TABLE RESD BULK INSERT RESDEFROM 'C:\DataProc\Output\RESD.txt'WITH(  ...
| | | 4 | | 9,314 |
#別用浮點數算錢 Don't use float in currency calculation DECLARE @f1 FLOAT, @f2 FLOATDECLARE @f3 FLOAT, @f4 FLOATSET @f1=6481.45SET @f2=6000SET @f3=0.1SET @f...
| | | 1 | | 7,761 |
有一個資料表,內有四筆資料,數量分別是2, 3, 5, 10,我希望用SQL查出如下包含百分比10%,15%, 25%, 50%的結果: ID AMT PERC ---...
| | | 0 | | 10,721 |
最近在處理表單引擎的Deadlock問題,由於引擎核心以物件導向方式開發,很難為了資料庫的更新問題去挪動物件的呼叫順序。但還是努力做了調整,每天Deadlock的發生次數終於壓到個位數,但要100%避免看來是不可能的(至少以我的能力來說是如此)。既然逃不掉,就乖乖面對吧! 一般處理Deadlock...