Let me explain little more..
insert into #test values ('1','A'), ('','B')
is not same as below.
insert into #test values('1','A')
insert into #test values ('','B')
The former insert statement in introduced in 2008 and the later is the usual code that we use often.
To be compatible in both, pls run the below code either in 2005 or 2008 and compare the results.
select '1' as c1,'A' as c2
select 1 as c1,'A' as c2
The important thing that i want to bring out is the datatype of the final result set is based on the first statement in the insert list.
From the above example ,
first result set has c1 [varchar(1)] , C2 [varchar(1)]
second result set has c1 [int, C2 [varchar(1)]
Hope this is helpful ?