0

コンサルタントの名、姓、スキル名、およびコンサルタントがスキルで認定されているかどうかを基本的に示す認定を含むテーブルがあります。2つの列(スキルと認定ステータス)を持つコンサルタントごとにテーブルを生成するスクリプトを作成しようとしています。一部のコンサルタントは複数のスキルを持っている場合があります。whileループ構文または動的SQLについて考えていますが、運がありません。私は運が悪かったのでウェブを徹底的に検索しました。

4

3 に答える 3

2

おそらく、これについては別の方法で行うのが最善です。別のテーブルのレコードごとにテーブルを作成する代わりに、1 対多の関係で最初のテーブルにリンクする 1 つの 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 に答える