创建一个临时表的时候.如果不指定列的长度,则临时表列的长度会根据所参照的表的对应列的大小,如
--创建一个表
Create table tmp1 (tmp1 varchar(3))
--创建临时表
select tmp1.tmp1 as tmp2 into #tmp2 from tmp1
--第一条语句成功,但是第二条失败,因为超出了长度
insert into #tmp2 values('123')
insert into #tmp2 values('1234')
--而如果没有参照其他数据表,则临时表的列会根据第一条插入的语句的数据长度而自动设置 ,如
select '123' as tmp into #tmp3
insert into #tmp3 values('123')
insert into #tmp3 values('1234')
--第一条语句成功,但是第二条失败,因为超出了长度
因此,使用临时表的时候 ,要注意临时表的列的长度是多大,避免超出