voce pode acessar ela utilizando um linked server:
EXEC master.dbo.sp_addlinkedserver @server = N'<NOME DO LINKED SERVER>', @srvproduct=N'Jet 4.0', @provider=N'Microsoft.Jet.OLEDB.4.0', @datasrc=N'C:\ARQUIVO.xls', @provstr=N'Excel 8.0';
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'<NOME DO LINKED SERVER>', @useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL;
GO
EXEC master.dbo.sp_serveroption @server=N'<NOME DO LINKED SERVER>', @optname=N'data access', @optvalue=N'true'
GO
Dessa forma você acessa o seu arquivo como se fosse um banco de dados, e como se cada tasheet fosse uma tabela, porém só funciona se ela não estiver com acesso exclusivo por nenhum outro programa, vale ressaltar que ao acessar
as tabsheets, elas ganham um $(cifrão) no final do nome:
select * from [<NOME DO LINKED SERVER>]...[<NOME DA TABSHEET>$];
exemplo:
select campo1, campo2 from MyLinkedServer...MySheet$;
update MyLinkedServer...MySheet$ set campo1=null where campo2 is null;
insert into MyLinkedServer...MySheet$ (campo1, campo2) values (1,1);
delete from MyLinkedServer...MySheet$ where not campo1 is null;