我們都知道CHAR(integer_expression)將ASCII代碼轉換為字元。當integer_expression介於 0 和 255 之間的整數。如果該整數表達式不在此範圍內,將返回 NULL 值。這些都是官方資料介紹的。具體參考https://msdn.microsoft.com/zh...
我們都知道CHAR(integer_expression)將ASCII代碼轉換為字元。當integer_expression介於 0 和 255 之間的整數。如果該整數表達式不在此範圍內,將返回 NULL 值。這些都是官方資料介紹的。具體參考https://msdn.microsoft.com/zh-cn/library/ms187323(v=sql.120).aspx
但是在我們最近的一次SQL SERVER 2005 遷移升級到SQL SERVER 2014的過程中發現了一些問題,發現官方文檔對這個函數的介紹描述有一些謬誤。如下所示,在SQL SERVER 2000 和SQL SERVER 2005中CHAR(129)到CHAR(254)都返回了?。 但是從SQL SERVER 2008以後到SQL SERVER 2014,CHAR(129)到CHAR(254)都返回NULL值。並不是官方文檔所說的參數不在1~255內才返回NULL值。這些必須註意,以免開發人員有些特殊的SQL用法在升級後出現錯誤。
SQL SERVER 2000
SQL SERVER 2005
SQL SERVER 2008R2
SQL SERVER 2014