2011-05-16 54 views
2

我將從CLR存儲過程返回的結果集插入到表變量中。我得到錯誤:「System.Data.SqlClient.SqlException:字符串或二進制數據將被截斷」,因爲結果集中的某些字符串長度超過臨時表中定義的varchar限制。令人討厭的是,截斷正是我想要的!
那麼,如何在插入時從存儲過程中截斷結果集中的字符串?
我寧可不更改CLR SP的代碼。插入數據中的字符串的長度是任意的。如何在CLR SP的結果數據被截斷時插入EXEC?

回答

2

我想我會做的臨時表大到足以接受數據,然後在插入後截斷,例如列,

UPDATE #YourTempTable 
    SET ColumnA = LEFT(ColumnA, 20), 
     ColumnB = LEFT(ColumnB, 50) 
+0

但我不現在有多大將是「足夠大「 提前。我可以使用'varchar(max)'作爲我的表變量,但是這不會導致性能下降嗎? – 2011-05-17 07:13:59