2012-08-28

以COALESCE()取代ISNULL()

在德瑞克大的Blog看到一篇認識 COALESCE() 函數文章,
特別記錄一下,供以後自己參考!

一般我們使用ISNULL()會傳入兩個參數,
當第一個參數為NULL時,則會回傳第二個參數的值,
COALESCE()不同於ISNULL(),在於可以傳入多個參數,
一直到第一個非NULL值的參數出現才回傳,
利用這個特性,也可以簡化當我們使用ISNULL()CASE WHEN的搭配!!

2012-08-24

使用 @@ROWCOUNT 抓取受影響資料筆數

MS SQL Server中提供@@ROWCOUNT函數,
可回傳上一個SQL語法影響的資料筆數,
利用此函數可以讓我們在編寫T-SQL語法時,
減少反覆利用select判斷資料次數,以增進效能!

SET NOCOUNT ON

DELETE FROM ExaRec
WHERE CorpNo='20001' AND PrgType='MATV16'

SELECT '刪除資料筆數-'+CONVERT(VARCHAR,@@ROWCOUNT)
----------------------
刪除資料筆數-4

參考自:

使用 SET NOCOUNT 關閉受影響資料筆數訊息

當我們在撰寫T-SQL時,
如果遇到批次更新資料時,
伺服器會顯示資料異動筆數,
(XX個資料列受到影響)

也會和我們PRINT的訊息混在一起,
透過SET NOCOUNT ON,將回覆受影響資料筆數訊息關閉,
不僅可以減少訊息輸出,也可以提升查詢效能!

參考自:
MSDN-SET NOCOUNT (Transact-SQL)
德瑞克:SQL Server 學習筆記

2012-08-02

flash player 11.3 crash 問題

最近flash player更新到11.3版後,使用Firefox常常會有當掉的情況,
於是移除後重新安裝舊版,但卻發生Firefox可以順利使用,
但是IE部分一直出現無法安裝的錯誤訊息,
最後利用反安裝軟體順利移除乾淨後,再重新安裝一次即可,
建議在bug尚未修正前,重新安裝時將flash player自動更新功能關閉。