Hace mucho tiempo estuve tratando de dar solucion a este problema, pero despues de tanto investigar e insistir logre mi
objetivo, la solucion no es tan sencilla, bueno al menos eso fue para en el principio .


Primer paso .-

Tenemos que configurar el SQLServer2005 siguiendo estos pasos :

Configuration Tools>SQL Server Surface Area Configuration>en la parte de abajo donde dice
"Configurar Superficie para localhost" hacer click en "Configuracion de superficie
para caracteristicas", una vez hecho click habilitar compatibilidad con OPENROWSET y OPENDATASOURCE... y Listo

Primer paso terminado...


Segundo Paso .-

Tenemos que colocar el archivo .xls(excel) en el disco C: para poder realizar la operacion.


Tercer paso .-

Copiamos este codigo :


--**************************CREANDO TABLA UBIGEO2009****************************

if exists(select * from information_schema.tables where table_name='Ubigeo2009')
drop table Ubigeo2009
go
SELECT * INTO Ubigeo2009 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=YES;IMEX=1;DataBase=C:\veliz.xls;',
'SELECT * FROM [veliz$]')
go


select * from Ubigeo2009
go



A continuacion comienzo a explicar,

El nombre que elegi para mi tabla es "Ubigeo2009" pero como no se si SQLServer ya lo tiene entre sus bases de datos
pongo :

if exists(select * from information_schema.tables where table_name='Ubigeo2009')
drop table Ubigeo2009
go

para que pueda borrarlo y asi pueda ejecutar tranquilamente mi nueva tabla "Ubigeo2009", despues viene lo bueno
para esto solo tienen que hacerle arreglos en la parte donde dice "DataBase=--Aqui ponen la ruta en donde pusieron
su archivo .xls y luego el nombre de su archivo;", una vez hecho todo esto en la parte donde se encutran los corchetes
'SELECT * FROM [veliz$]' en vez de poner [veliz$] ponen el nombre de la hoja de su archivo .xls, en mi caso se llamo
veliz$.


Y eso es todo lo que se tiene que hacer.Salu2