Mira no se si se puede exactamente con SQL es decir que no se si tiene alguna funcion que te lo haga automaticamente ya que nunca lo he usado pero si se como podrias crear una pagina .asp la cual te permitiria hacerlo
seria algo asi
lo que necesitas es crear dos record set y dos conexiones uno para excel y uno para sql
y luego abrir el de excel primero y y luego abrir el de sql ejecutas una sentencia do while not rsexcel.eof y alli colocas un rssql.addnew . seria algo asi
set rsexl=server.......................recordset")
xlssql="select * form rango"
rsacc.open xlssql, xlsconn
rsxls.movefirst
set rssql=server.create......................recordset")
sqlsql="select * form tabla"
rssql.open sqlsql, sqlconn
do while not rsxls.eof
rssql.addnew
rssql.fields("Campo1")=rsxls(0)
rssql.fields("Campo2")=rsacc(1)
rssql.fields("Campo3")=rsacc(2)
rssql.update
rssql.requery
rsxls.movenext
loop
rsxls.close
y luego si queres le agregas que te muestre los datos de sql, nunca he trabajado con sqlserver y no se si acepta el metodo addnew pero si no solo averiguate el metodo necesario
antes de hacer la conexion a exel debes seleccionar el rango de datos con en que vas a trabajar (sooo los datos no nombres), y entrar en insert y darle el nombre rango, espero que te sirva, si no solo pone otra respuesta y veo en que te ayudo