SQL:如何正确存储来自外部Excel文档源的数据?

我正在使用SQL Server 2008,我正在使用导入向导导入数据。

我有像以下的Excel文件中的数据…

SessionID Email SubmitTime Question1 Question2 Question3 ---------- ----- ----------- --------- --------- ---------- 54535212 a@b.com 12/21/2011 Yes No Yes 54532342 c@d.com 12/22/2011 Yes Yes Yes 54535288 e@f.com 12/23/2011 No No Yes 54532399 g@h.com 12/24/2011 No Yes Yes 

现在我想将它存储在我的数据库中,以便我可以轻松访问数据。 我想我应该做一个Users TableQuestions TableAnswers TableSubmitted Table 。 为了我的目的,提交的表格可以成为用户表格的一列。

 User `Email` `Submitted` `SessionID` Question `Question1` `Question2` `Question3` Answer `Email` `Question` `Answer` 

如何使用Excel文档中的查询填充“答案”表? 或从Excel文档导入创build的初始表? 这似乎是一个简单的问题,但解决方法是由于某种原因逃避我。 谢谢你的帮助!

你的数据结构有点搞砸了。 如果Question1Question3 3有三列,那么您需要一个SurveyID列或类别的东西来标识唯一的组合。 然后,您的答案表将具有UserIDSurveyIDAnswer1SurveyIDAnswer1列。

如果你的Question表有一个Question列和一个QuestionID列(希望是一个identity列,所以它自动增加,那么你会做这样的事情来填充你的Import表中的Answer表:

 insert into answer (userid, questionid, answer) select u.userid, q.questionid, case when q.question = 'Question1' then i.question1 when q.question = 'Question2' then i.question2 when q.question = 'Question3' then i.question3 else null end as answer from import i inner join users u on i.email = u.email cross join question q