我有一个表,其中包含顾问的名字,姓氏,技能名称和认证,这基本上显示了顾问是否在他们的技能认证。我正在尝试创建一个脚本,它将为每个顾问生成一个两列(技能和认证状态)的表,一些顾问可能有多个技能。我在考虑while循环语法或动态sql,但没有成功。我在网上彻底搜索了一遍,但一无所获。
发布于 2012-11-21 06:25:18
你最好用不同的方式来做这件事。不需要为另一个表中的每个记录创建表,只需创建第二个表,该表在一对多关系中链接到第一个表。
例如:
Consultant
----------
ConsultantID
Name
Skill
-----
SkillID
SkillName
F_ConsultantID发布于 2012-11-21 06:28:44
而不是你提出的解决方案,我认为你想要一个连接,或映射表。
Consultant
- ID
- First_Name
- Etc...
Skill
- ID
- Name
Consultant_Skill
- Consultant_ID
- Skill_IDconsultant_skill表将允许您在consultant和skill之间建立多对多关系。
发布于 2012-11-21 14:30:34
根据实验室问题的参数,对我有效的答案是:
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
Endhttps://stackoverflow.com/questions/13483199
复制相似问题