首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server 2008如何为表中的每条记录创建多个表?

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

Stack Overflow用户
提问于 2012-11-21 06:18:55
回答 3查看 1.4K关注 0票数 0

我有一个表,其中包含顾问的名字,姓氏,技能名称和认证,这基本上显示了顾问是否在他们的技能认证。我正在尝试创建一个脚本,它将为每个顾问生成一个两列(技能和认证状态)的表,一些顾问可能有多个技能。我在考虑while循环语法或动态sql,但没有成功。我在网上彻底搜索了一遍,但一无所获。

EN

回答 3

Stack Overflow用户

发布于 2012-11-21 06:25:18

你最好用不同的方式来做这件事。不需要为另一个表中的每个记录创建表,只需创建第二个表,该表在一对多关系中链接到第一个表。

例如:

代码语言:javascript
复制
Consultant
----------
ConsultantID
Name


Skill
-----
SkillID
SkillName
F_ConsultantID
票数 2
EN

Stack Overflow用户

发布于 2012-11-21 06:28:44

而不是你提出的解决方案,我认为你想要一个连接,或映射表。

代码语言:javascript
复制
Consultant
    - ID
    - First_Name
    - Etc...

Skill
    - ID
    - Name

Consultant_Skill
    - Consultant_ID
    - Skill_ID

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

票数 1
EN

Stack Overflow用户

发布于 2012-11-21 14:30:34

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

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13483199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档