SQL Server 2008如何为表中的每条记录创建多个表?

时间:2012-11-20 22:18:55

标签: sql-server-2008

我有一张表,其中包含顾问的名字,姓氏,技能名称和证明,这些表格基本上显示了顾问是否获得了技能认证。我正在尝试创建一个脚本,为每个顾问生成一个表,其中包含两列(技能和认证状态),一些顾问可能拥有多项技能。我正在考虑while循环语法或动态sql但没有运气。我没有运气就彻底搜查了网页。

3 个答案:

答案 0 :(得分:2)

你可能最好以不同的方式解决这个问题。而不是为另一个表中的每个记录创建表,只需创建一个第二个表,该表连接到一对多关系中的第一个。

例如:

Consultant
----------
ConsultantID
Name


Skill
-----
SkillID
SkillName
F_ConsultantID

答案 1 :(得分:1)

我认为您需要一个联结或映射表,而不是您提出的解决方案。

Consultant
    - ID
    - First_Name
    - Etc...

Skill
    - ID
    - Name

Consultant_Skill
    - Consultant_ID
    - Skill_ID

consultant_skill表格允许您在consultantskill之间建立多对多关系。

答案 2 :(得分:1)

根据实验室问题的参数,对我有用的答案是:

USE Software

Declare @TableNameVar varchar(1000)
Declare @ConsultantIDVar int, @ConsultantIDMax int

Set @ConsultantIDVar = (Select MIN(ConsultantID) From Consultant)
Set @ConsultantIDMax = (Select MAX(ConsultantID) From Consultant)

While @ConsultantIDVar <= @ConsultantIDMax
Begin

   Set @TableNameVar = (Select (ConsultantFName + '_' + ConsultantLName)
                                From Consultant
                                Where ConsultantID = @ConsultantIDVar)

   Set @TableNameVar = 'Create Table '+ @TableNameVar + ' (SkillDescription varchar(40), Certification bit)'
   Exec (@TableNameVar)

   Set @ConsultantIDVar = @ConsultantIDVar + 1

End