2012-11-20 50 views
0

我有一張表,其中包含顧問的名字,姓氏,技能名稱和證明,基本顯示顧問是否通過了他們的技能鑑定。我正在嘗試創建一個腳本,爲兩名專業顧問(技能和認證狀態)生成一張表格,一些顧問可能擁有多種技能。我正在考慮while循環語法或動態sql,但沒有運氣。我已經徹底搜索了網頁,但沒有運氣。SQL Server 2008如何爲表中的每個記錄創建多個表?

+1

到底爲什麼要用於每個顧問的表? –

+1

是否要創建認證表並根據認證過濾記錄並將其放入新表中?舉一些你想做什麼的例子。 – user704988

+0

這是我大學的一個實驗室問題。我想通了 – user1840281

回答

2

你可能最好採取這種不同的方式。不要爲另一個表中的每個記錄創建表,只需創建一個鏈接到一對多關係中第一個表的第二個表。

例如:

Consultant 
---------- 
ConsultantID 
Name 


Skill 
----- 
SkillID 
SkillName 
F_ConsultantID 
+0

兩張表之間的外鍵關係是要走的路。 – Jeremy

1

而不是你提出的解決方案,我想你想有一個結,或映射表。

Consultant 
    - ID 
    - First_Name 
    - Etc... 

Skill 
    - ID 
    - Name 

Consultant_Skill 
    - Consultant_ID 
    - Skill_ID 

consultant_skill表將讓您有consultantskill之間的許多一對多的關係。

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 
相關問題