Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

niu_esi

problema a Passar de EXCEL para SQL server

Recommended Posts

Boas pessoal,

estou com o seguinte prob:

estou a tentar passar dados do excel para uma determinada coluna no sql, mas o problema é que quando tento passar valores com a tabela criada dá-me erro

 

Se eu inserir assim, não me dá erro:

SELECT *
INTO Countries 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=G:\books\euromonitor\taskdata.xls',
'SELECT * FROM [Part1$A1:A8]')

 

mas se inserir desta forma com a tabela criada já dá erro(Invalid column name 'COUNTRY'.) ou se meter so * por vez do COUNTRY aparece(Insert Error: Column name or number of supplied values does not match table definition.):

 

create table Countries
(C_NO SMALLINT PRIMARY KEY,
COUNTRY VARCHAR(20));

Insert into Countries 
Select COUNTRY 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=G:\books\euromonitor\taskdata.xls;HDR=YES',
'SELECT * FROM [Part1$A2:A8]')

 

basicamente o meu abjectivo é passar valores da segunda forma já que vou ter outra coluna que não vai ter valores de excel.

Se alguem me poder dar umas dicas agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

duas sugestoes:

 

1: [Part1$A2:A8$]

2: colocar o nome direto da sheet [nome_sheet$]

tentei a primeira opção e deu erro de caminho incorrecto... quanto à segunda opção já tentei mas sem o nome das linhas/colunas a copiar vai copiar tudo e eu só quero alguns dados, pois são várias tabelas na mesma sheet de excel.

 

 

Agora de manha tentei criar a tabela Countries só com a coluna COUNTRY e assim com a segunda opção funciona:

create table Countries
(COUNTRY VARCHAR(20));

Insert into Countries 
Select * 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=G:\books\euromonitor\taskdata.xls;HDR=YES',
'SELECT * FROM [Part1$A2:A8]')

 

de qualquer maneira queria encontrar solução de ter já todas as colunas inseridas e só actualizar a coluna COUNTRY...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.