星期五, 2月 14, 2014

[SQL] CAST 和 CONVERT 中 char、varchar 預設值

聽到這樣的說法,利用 CONVERT 轉成 varchar 時,不用指定大小,只要指定 varchar 有多少資料就轉多少,但 MSDN 上說明的很清楚,利用 CAST 或 CONVERT 轉換資料為 char 或 varchar 不指定大小情況下,預設值是 30

阿呆範例來說明,故意定義一個 char 為 40 的變數,資料內容塞 1 - 0,10 個字元一組並重覆 4 次,也就是剛好塞滿
DECLARE @Data AS char(40) = '1234567890123456789012345678901234567890'

SELECT 
    CAST(@Data AS varchar) AS 'CAST',
    CONVERT(varchar,@Data) AS 'CONVERT'
從結果就可以發現,不定義 varchar 大小情況下,只顯示 3 組資料,建議以後明確地指定大小,免的出現 bug 時,會不知道是哪裡出錯

沒有留言:

張貼留言