我有一张表,其中包含顾问的名字,姓氏,技能名称和证明,这些表格基本上显示了顾问是否获得了技能认证。我正在尝试创建一个脚本,为每个顾问生成一个表,其中包含两列(技能和认证状态),一些顾问可能拥有多项技能。我正在考虑while循环语法或动态sql但没有运气。我没有运气就彻底搜查了网页。
答案 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
表格允许您在consultant
和skill
之间建立多对多关系。
答案 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