0

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

4

3 回答 3

2

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

例如:

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


Skill
-----
SkillID
SkillName
F_ConsultantID
于 2012-11-20T22:25:18.263 回答
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
于 2012-11-21T06:30:33.750 回答
1

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

Consultant
    - ID
    - First_Name
    - Etc...

Skill
    - ID
    - Name

Consultant_Skill
    - Consultant_ID
    - Skill_ID

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

于 2012-11-20T22:28:43.623 回答