SQL Server nvarchar(max)


平時接觸都是float類型、number類型轉化成nvarchar類型。用cast,convert就可以。

今天把一個excel導入到SQL Server 2012中,處理完后復制到excel里,格式都亂了;

於是想把tab鍵、換行符等替換掉的,結果看到一字段ntext類型,於是用replace試下,結果不行;

再次驗證了官方說明上replace函數的使用的正確性LY6DR3ISJE0)6K)L)]~VIZK

image

官方上說的很明確了,如果string_expression的類型不是varchar(max)或nvarchar(max),則REPLACE將截斷返回值,截斷長度為8,000字節。

若要返回大於8,000字節的值,則必須將string_expression顯示轉換為大值數據類型。

先說明我的那字段真大於8000,而且我真的使用convert(nvarchar(8000),column_name)轉換的,結果失敗;好吧,我承認我錯了,我該仔細看報錯說明的,我把8000改為4000就OK了。

image

但是,但是,我要說一點,convert(nvarchar(4000),column_name)這個絕對有截斷的。

重點是下面:

convert(nvarchar(max),column_name)

這樣竟然沒報錯(開始使用convert(nvarchar(8000),column_name)報錯的,后來我找了個max),我很吃驚!我不知道有沒有截斷哦,好像這么多內容,excel的單元格不顯示全的。

max 指示最大存儲大小是 2^31-1 個字節

image

 

 

再次標注下:

char(9) 水平制表符
char(10)換行鍵
char(13)回車鍵


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM