數據庫操作時
消息 8152,級別 16,狀態 4,第 1 行
將截斷字符串或二進制數據。
語句已終止。
這樣的報錯原因是 你輸入字符串的長度,超過了你數據庫能錄入的長度.
網上介紹最簡單的方法, 把你數據庫的值,都改為varchar(50) .
解決'將 expression 轉換為數據類型 nvarchar 時出現算術溢出錯誤。'
消息 8115,級別 16,狀態 2,第 1 行
將 expression 轉換為數據類型 nvarchar 時出現算術溢出錯誤。
語句已終止。
在生產環境中遇到一個異常提示:“將 expression 轉換為數據類型 nvarchar 時出現算術溢出錯誤。”,一看這錯誤就知道是數據庫的異常,趕緊檢查存儲過程。
發現存儲過程中有將某個int值轉換為nvarchar(2)的數據,心中一想,不會吧……這樣也可以?萬一int是自增的,過了100咋辦?一查數據果然是此int類型值已達9800+,為確認是此處導致的問題,自己寫個查詢檢查下:
declare @x int;
set @x = 9980;
select Convert(nvarchar(2),@x);
set @x = 9980;
select Convert(nvarchar(2),@x);
結果果然出現了“將 expression 轉換為數據類型 nvarchar 時出現算術溢出錯誤。”。
那么增加nvarchar類型的長度就行,改為nvarchar(8),順利運行通過。