我的#temp
表列定义为VARCHAR(10)
,输入例如:value为'Azure'。数据来自一个表,其中列定义为VARCHAR(100)
,但插入到临时表中的TOP 1
查询只返回6这样大的值,但我仍然得到一个错误:
字符串或二进制数据将被截断
即使插入的特定值的最大大小为6,如果源表中有更大的值,例如:"稍大的文本"(即20(,如果是TOP查询,则#temp
插入将失败。
当然,根据基本数据列定义的原始大小来调整临时表列的大小,这样你就不会像我一样浪费时间:(#temp
表中有太多更大的VARCHAR
列,人们不会认为VARCHAR(10)
和VARCHAR(20)
会对具有LEN()=5
的值产生影响。