當我們新增資料到Table之中,如果字串長度超過時,就會發生「String or binary data would be truncated.」的錯誤,
那什麼時候指定字串超過限制時,不會發生錯誤呢?
以下是亂馬客觀看「Under what circumstances is character data truncated without triggering an error?」的記錄。
當我們新增資料到Table之中,如果字串長度超過時,就會發生「String or binary data would be truncated.」的錯誤,如下,
IF OBJECT_ID('Table_1', 'U') IS NOT NULL
DROP TABLE Table_1;
GO
CREATE TABLE Table_1
(
Id INT NOT NULL IDENTITY PRIMARY KEY,
Name VARCHAR(10) NOT NULL
);
GO
INSERT INTO Table_1(Name) VALUES('1234567890_123');
Msg 8152, Level 16, State 14, Line 17
String or binary data would be truncated.
The statement has been terminated.
那如果把字串 Assign 到變數之中,還是會發生錯誤嗎? 如下,
DECLARE @Name VARCHAR(10)
SET @Name = '1234567890_123';
SELECT @Name;
把字串Assign到變數之中,如果給的字串超過變數宣告的長度,那就超過的就會被截掉而不會發生錯誤哦!
參考資料
Questions about SQL Server Data Types You were Too Shy to Ask
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^