我在將數據插入某個表時收到錯誤消息。二進制數據截斷的虛假錯誤消息(Msg 8152)
該字段的數據類型是Varchar(20)
和被插入的數據具有最大 數據長度爲6
我不明白哪來的問題。雖然我可以通過添加
SET ANSI_WARNINGS OFF
避免這種情況,但它會是解決辦法不是解決辦法:
我在將數據插入某個表時收到錯誤消息。二進制數據截斷的虛假錯誤消息(Msg 8152)
該字段的數據類型是Varchar(20)
和被插入的數據具有最大 數據長度爲6
我不明白哪來的問題。雖然我可以通過添加
SET ANSI_WARNINGS OFF
避免這種情況,但它會是解決辦法不是解決辦法:
看來你列的SchemaName 最大長度財產小那麼值,你會插入。
根據您的數據更新您的色譜柱長度。
ALTER TABLE Temp ALTER COLUMN SchemaName VARCHAR(XXXX)
您的目標表不足以容納您試圖插入的數據。看起來你的目標大小是varchar(256),但你已經給varchar(10)。只需擴展列大小即可解決此問題。
運行該DDL
Alter table temp alter column SchemaName varchar(256)
我不明白什麼時候數據長度已經提到是12,所以使用'varchar(256)' –
此錯誤來當你的列有大小小於它們。 更新列的大小。
剛剛看到屏幕截圖之前,盲目回答有什麼意思.. –
我剛發現這個問題的根本原因。 其實我試圖插入sysname
數據類型值到varchar()
。 所以必須指定適當的長度來容納sysname數據類型。
啊你已經找到了問題..我看到+1 - 小提示,sysname基本上是nvarchar(128) –
sh.Name可能是nVARCHAR? –
[錯誤,字符串或二進制數據在嘗試插入時會被截斷](http://stackoverflow.com/questions/5591473/error-string-or-binary-data-would-be- truncated-when-試圖插入) –
@MatthiasBurger如果你不明白這個問題,那麼至少不要評論。任何人都可以說「字段長度小於插入值」。 –