コンサルタントの名、姓、スキル名、およびコンサルタントがスキルで認定されているかどうかを基本的に示す認定を含むテーブルがあります。2つの列(スキルと認定ステータス)を持つコンサルタントごとにテーブルを生成するスクリプトを作成しようとしています。一部のコンサルタントは複数のスキルを持っている場合があります。whileループ構文または動的SQLについて考えていますが、運がありません。私は運が悪かったのでウェブを徹底的に検索しました。
質問する
1414 次
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
多対多の関係を持たせることができます。consultant
skill
于 2012-11-20T22:28:43.623 に答える