char [ ( n ) ] 固定長度字元資料型別,非Unicode字元資料,長度為n個位元組。 n 的取值範圍為 1至 8,000,儲存大小是n個位元組。如果輸入的 字串長度不足N 則在右邊用空格補足. 例: declare @str char(5)set @str="ab"select @strselect DATALENGTH(@str)/*ab(三個空格)----------------------5*/ varchar [ ( n | max ) ] 可變長度的字元資料型別,非Unicode字元資料。n的取值範圍為 1 至 8,000或者max,max指示最大儲存大小是 2^31-1(2^31為的次方)個位元組。 儲存大小是輸入資料的實際長度加 2 個位元組。所輸入資料的長度可以為 0 個字元。例: declare @str varchar(5)set @str="ab"select @strselect DATALENGTH(@str)/*ab(沒有空格)----------------------2*/ 如果未在資料定義或變數宣告語句中指定 n,則預設長度為 1。 如果在使用 CAST 和 CONVERT函式時未指定n,則預設長度為 30。 將為使用 char或varchar 的物件指派資料庫的預設排序規則, 除非使用 COLLATE子句指派了特定的排序規則。 該排序規則控制用於儲存字元資料的內碼表。 如果站點支援多語言,請考慮使用Unicodenchar 或 nvarchar 資料型別, 以最大限度地消除字元轉換問題。如果使用char或 varchar,建議執行以下操作: 如果列資料項的大小一致,則使用char。如果列資料項的大小差異相當大,則使用varchar。如果列資料項大小相差很大,而且大小可能超過 8,000位元組,請使用varchar(max)。當執行 CREATETABLE或 ALTER TABLE 時,如果SETANSI_PADDING 為 OFF,則定義為NULL的 char 列將作為 varchar處理。 當排序規則內碼表使用雙位元組字元時,儲存大小仍然為n個位元組。根據字串的不同,n個位元組的儲存大小可能小於n 個字元。字元資料型別(nchar長度固定,nvarchar長度可變)和 Unicode資料使用 UNICODEUCS-2字符集。 nchar [ ( n ) ] n 個字元的固定長度的Unicode字元資料。n值必須在 1到 4,000之間(含)。 儲存大小為兩倍 n 位元組。 例: declare @str1 nchar(5)set @str1="ab"select @str1select DATALENGTH(@str1) /*ab(三個空格)---------------10*/declare @str2 nchar(5)set @str2="我愛你小三"select @str2select DATALENGTH(@str2)/*我愛你小三------------------10*/ nvarchar [ ( n | max ) ] 可變長度 Unicode 字元資料。n值在 1到 4,000之間(含)。 max 指示最大儲存大小為 2^31-1位元組。儲存大小是所輸入字元個數的兩倍+ 2 個位元組。 所輸入資料的長度可以為 0 個字元。 例: declare @str1 nvarchar(5)set @str1="ab"select @str1select DATALENGTH(@str1) /*ab(無空格)---------------4*/ declare @str2 nvarchar(5)set @str2="我愛你小三"select @str2select DATALENGTH(@str2) /*我愛你劉樺------------------10*/ 如果沒有在資料定義或變數宣告語句中指定 n,則預設長度為 1。如果沒有使用CAST函式指定 n,則預設長度為 30。 如果列資料項的大小可能相同,請使用nchar。 如果列資料項的大小可能差異很大,請使用nvarchar。 sysname 是系統提供的使用者定義資料型別,除了不可為空值外, 在功能上與 nvarchar(128)相同。sysname用於引用資料庫物件名。 為使用 nchar或nvarchar 的物件分配的是預設的資料庫排序規則, 但可使用 COLLATE子句分配特定的排序規則。 SET ANSI_PADDINGON永遠適用於 nchar 和 nvarchar。SETANSI_PADDINGOFF不適用於 nchar 或nvarchar 資料型別。
char [ ( n ) ] 固定長度字元資料型別,非Unicode字元資料,長度為n個位元組。 n 的取值範圍為 1至 8,000,儲存大小是n個位元組。如果輸入的 字串長度不足N 則在右邊用空格補足. 例: declare @str char(5)set @str="ab"select @strselect DATALENGTH(@str)/*ab(三個空格)----------------------5*/ varchar [ ( n | max ) ] 可變長度的字元資料型別,非Unicode字元資料。n的取值範圍為 1 至 8,000或者max,max指示最大儲存大小是 2^31-1(2^31為的次方)個位元組。 儲存大小是輸入資料的實際長度加 2 個位元組。所輸入資料的長度可以為 0 個字元。例: declare @str varchar(5)set @str="ab"select @strselect DATALENGTH(@str)/*ab(沒有空格)----------------------2*/ 如果未在資料定義或變數宣告語句中指定 n,則預設長度為 1。 如果在使用 CAST 和 CONVERT函式時未指定n,則預設長度為 30。 將為使用 char或varchar 的物件指派資料庫的預設排序規則, 除非使用 COLLATE子句指派了特定的排序規則。 該排序規則控制用於儲存字元資料的內碼表。 如果站點支援多語言,請考慮使用Unicodenchar 或 nvarchar 資料型別, 以最大限度地消除字元轉換問題。如果使用char或 varchar,建議執行以下操作: 如果列資料項的大小一致,則使用char。如果列資料項的大小差異相當大,則使用varchar。如果列資料項大小相差很大,而且大小可能超過 8,000位元組,請使用varchar(max)。當執行 CREATETABLE或 ALTER TABLE 時,如果SETANSI_PADDING 為 OFF,則定義為NULL的 char 列將作為 varchar處理。 當排序規則內碼表使用雙位元組字元時,儲存大小仍然為n個位元組。根據字串的不同,n個位元組的儲存大小可能小於n 個字元。字元資料型別(nchar長度固定,nvarchar長度可變)和 Unicode資料使用 UNICODEUCS-2字符集。 nchar [ ( n ) ] n 個字元的固定長度的Unicode字元資料。n值必須在 1到 4,000之間(含)。 儲存大小為兩倍 n 位元組。 例: declare @str1 nchar(5)set @str1="ab"select @str1select DATALENGTH(@str1) /*ab(三個空格)---------------10*/declare @str2 nchar(5)set @str2="我愛你小三"select @str2select DATALENGTH(@str2)/*我愛你小三------------------10*/ nvarchar [ ( n | max ) ] 可變長度 Unicode 字元資料。n值在 1到 4,000之間(含)。 max 指示最大儲存大小為 2^31-1位元組。儲存大小是所輸入字元個數的兩倍+ 2 個位元組。 所輸入資料的長度可以為 0 個字元。 例: declare @str1 nvarchar(5)set @str1="ab"select @str1select DATALENGTH(@str1) /*ab(無空格)---------------4*/ declare @str2 nvarchar(5)set @str2="我愛你小三"select @str2select DATALENGTH(@str2) /*我愛你劉樺------------------10*/ 如果沒有在資料定義或變數宣告語句中指定 n,則預設長度為 1。如果沒有使用CAST函式指定 n,則預設長度為 30。 如果列資料項的大小可能相同,請使用nchar。 如果列資料項的大小可能差異很大,請使用nvarchar。 sysname 是系統提供的使用者定義資料型別,除了不可為空值外, 在功能上與 nvarchar(128)相同。sysname用於引用資料庫物件名。 為使用 nchar或nvarchar 的物件分配的是預設的資料庫排序規則, 但可使用 COLLATE子句分配特定的排序規則。 SET ANSI_PADDINGON永遠適用於 nchar 和 nvarchar。SETANSI_PADDINGOFF不適用於 nchar 或nvarchar 資料型別。