在 Silverlight 等異步開發場景中,若需從結構不同但輸出欄位相同的兩張表(如「考試表」ExamTB 與「任務表」TaskTB)一次性讀取資料並合併輸出,多次查詢不僅浪費效能,還增加同步複雜度。利用臨時表可優雅解決此問題。
兩表欄位對應關係如下:
目標是將兩表資料合併,並新增 Type 欄位標識來源(1=考試,2=任務)。
-- 建立暫存表
CREATE TABLE #TempTB (
TId int,
TName varchar(50),
SubjectId int,
TType int
);
-- 插入考試表資料
INSERT INTO #TempTB (TId, TName, SubjectId, TType)
SELECT EId, EName, SubjectId, 1
FROM ExamTB;
-- 插入任務表資料
INSERT INTO #TempTB (TId, TName, SubjectId, TType)
SELECT TId, TName, SubjectId, 2
FROM TaskTB;
-- 輸出合併結果
SELECT * FROM #TempTB;
-- 清理暫存表
DROP TABLE #TempTB;
此法避免了游標循環,效能優異,且邏輯清晰易維護。實際應用中可根據業務需求擴展欄位與過濾條件。