很多情境會使用CTE來跑遞迴,最常的情境應該就是用CTE跑出階層效果。
而要順利使用遞迴會有一些限制,其中官方文件有寫到一個限制就是 -->
- 遞迴成員資料行的資料類型必須與錨點成員中對應資料行的資料類型相同。
以下是因為該限制而發生錯誤的Demo Code
很多情境會使用CTE來跑遞迴,最常的情境應該就是用CTE跑出階層效果。
而要順利使用遞迴會有一些限制,其中官方文件有寫到一個限制就是 -->
以下是因為該限制而發生錯誤的Demo Code
今日一新系統上線,30分鐘後AP同仁傳了系統錯誤訊息給我,如下圖所示。從字面上來看就是系統的資料庫發生了DeadLock。我先開始錄SQL的Trace來抓DeadLock事件,但似乎只有系統開始運作的前30分鐘有發生,後來就沒再發生DeadLock事件。於是乎我就透過預設的Extented Event來檢視之前DeadLock事件是那些資源互咬,並檢視當下時間所執行的語法。但我怎麼看當時執行的語法都覺得不至於產生DeadLock啊。
某日有同仁表示自己撰寫的一張報表有時執行成功,但有時候又會失敗,然而他將該TSQL語法直接在SSMS執行時卻都不會失敗。
簡單筆記一下如何透過Linked Server來刪除資料表
今天一位同事用Case When去比對欄位時發生錯誤,該欄位是ntext型態,以下記錄一下
這是一個網友在PASS社團問的問題,個人筆記一下
日前在Tunning一句語法時,在SSMS的視窗下撰寫TSQL測試。當時發現我用變數當參數來查跟直接用數字來當參數查時會跑不同的執行計畫,Code的範例如下
今天在Super SQL Server社團看見有人問了一個問題,他有一個每日銷售金額統計表,他想每日都往前加5天,產生一個view叫做sumof5days,應該如何寫這個查詢呢?
日前有一個需求就是每一年初產出今年所有日期的資料,並寫入資料表中。產出今年所有日期的資料的作法我是採用CTE搭配其遞迴的特性來做
日前檢視一支StoreProcedure時無意間發現了這一個問題。當時該SP的開發者在該SP中利用User丟進來的參數來串成他要的Query字串後再透過sp_executesql執行該語法字串。等於是在SP中組出一個Adhoc字串來跑,這樣完全無法享受到重用執行計畫的好處。
近期在撰寫TSQL做資料匯入時,會因為目的資料表有Identity型態的欄位,所以得在該資料表開啟IDENTITY_INSERT後再寫入資料。
今天同仁問了一個問題,他用字串動態組了一個超長的語法,但該字串列出來時發現中間少了一些語法,似乎是字串相加時被截掉了。
NULL在資料庫中一直以來常會被拿出來警世,也看過一些書籍或聽一些演講都會提到盡量不要讓欄位是可以允許NULL的。
現實的資料規劃中常會遇到有人將一些有意義的代號組成一字串來儲存,這樣的設計模式常常會碰到的大問題就是需要拆字串來查詢。而拆字串的方式查詢往往都無法使用索引,因此造成Table Scan進而影響效能。
純筆記
日前一位同仁來告知我說他寫了一支預存程序,但一執行卻跑很久也不會停止,因此請我幫忙看一下該預存程序。
SQL2016以前常會有一個需求就是將一個字串用分隔符號拆解後轉成Table來運用,而這個需求在SQL2016中內建了
我們常常會把文件或圖檔轉成二進位後放到SQL資料庫中,但如果要取出該檔案往往需要撰寫程式來將檔案取出,日前楊志強老師分享利用BCP方式也可以簡單做到,筆記一下
之前有過將SQL2000直升SQL2014的經驗後,因此對於SQL2008R2中部分相容性層級為90的資料庫也起了調升的意念。
常常用Except來比對資料差異性,但一直不知道Except有個雷。那就是會distinct回傳的資料列,日前看見楊志強老師分享文才知道,汗顏......