我試圖將一些數據插入表被截斷,我得到了錯誤消息這將在插入查詢
Msg 8152, Level 16, State 14, Line 1
String or binary data would be truncated.
現在我知道,這是由於試圖插入這是數據識別值對於列太大(在這種情況下是VARCHAR(50)),但它讓我想到是否有可能:
a)看看什麼具體的值會被截斷(記住這可能會發生多列),也許通過給出所有將被截斷的行的輸出?
b)如果在批處理插入內,有任何方法可以查看每列將被截斷的最大輸入數據值(所以我可以看到數據存儲類型實際上是否需要更改或者只有一個或兩個案例不適合列?)
我看到這個,但我發現的問題是,它並沒有明確哪一列已被截斷(因爲我有很多潛力)的每一行,因爲除了子句 – Dibstar 2011-02-28 15:13:27
除了@Dibstar的公平點之外,這是一個縮小範圍的好方法。值得一提的是,作爲一個經驗法則,如果只有一半的人做正確的工作會導致用戶看到誤導或奇怪的事情,那麼他們什麼也看不到。最好不要在常規生產中使用它,除非例外情況明確標記給用戶,或者您確信唯一現實的失敗案例會創建99%的用戶沒有probs,1%的用戶沒有關鍵的probs。 事實上,如果出現> n或n%的錯誤,你也可以設置一個'TRY CATCH'來回滾整個事物。 – Adamantish 2014-07-25 18:38:37
@Adamantish我想你可以使用[這種方法](http://stackoverflow.com/q/3248670/73226)找到列。我看到你已經在那裏評論過了! – 2014-07-30 22:12:10