To 闪电、mataijin :
你们都没有看懂 xingeydh 的原意!
这个问题当然用 Trigger 也能做,但是很复杂。需要动态在 Trigger 中拼接 Alter Table
SQL 语句,再 Execute 这个拼接出来的命令。
btw: xingeydh 的要求很奇怪,这样的程序除非有非常特别的应用,否则决不应该采用这样
的做法。我猜想一般可能是 Cross Table 的要求,字典表的每一项成为查询结果的一列,在
Access 和 PB 中就能够实现 Cross Table ,比如在 Access 中:
V_Score: 成绩表
学号 姓名 分数 课程编码 课程名称(根据课程编码与课程字典表连接查询得到)
Student_Code Student_Name Score Lesson_Code Lesson_Name ...
下面就是 Cross Table 的 SQL 语句:
TRANSFORM Last([V_Score].[Score]) AS Score
SELECT [V_Score].[Student_Code], [V_Score].[Student_Name]
FROM V_Score
GROUP BY [V_Score].[Student_Code], [V_Score].[Student_Name], [V_Score].[Region_Code], [V_Score].[Region_Name], [V_Score].[Sex], [V_Score].[Birthday], [V_Score].[Education], [V_Score].[Education_Name], [V_Score].[Specialty], [V_Score].[Graduate_Date], [V_Score].[Company], [V_Score].[Address], [V_Score].[Telephone], [V_Score].[Zip]
PIVOT [V_Score].[Lesson_Name];
得到的结果是:
学号 姓名 课程1 课程2 课程3 ...
001 AAAA 87 89 78 ...
...