國家安全情報人員考試五等考試-資訊組資料處理大意112 年第 30 題單選題
關於預存程序(Stored Procedure)之敘述,下列何者錯誤?
A預存程序可以在資料庫中編譯和儲存,減少每次執行時的編譯時間和傳輸資料量,以提高整體效能
B預存程序可以執行一系列 T-SQL 程式指令,包括存取資料庫的 SQL 指令,和控制程式流程的指令
C可以從預存程序中呼叫另一個預存程序,或在運算式中呼叫預存程序
D執行預存程序時不可以傳遞參數,執行後可以傳回結果正確答案
D正確答案
預存程序可傳入參數也可回傳結果,D 敘述完全顛倒,是本題要選的錯誤選項。
為什麼答案是 D
錯誤(本題答案)。預存程序「可以」傳入輸入參數(IN)並能透過輸出參數(OUT)或 RETURN 回傳結果,參數化正是預存程序的重要特性。
載入中…
完整詳解
Pro · 無限重點 預存程序可傳入參數也可回傳結果,D 敘述完全顛倒,是本題要選的錯誤選項。
看到「不可以傳遞參數」直接選 D,預存程序的核心功能之一就是參數化呼叫。
逐選項分析
A✕
正確。預存程序事先編譯並儲存在資料庫中,執行時不需重新解析與編譯,也減少 SQL 指令傳輸量,能有效提升效能。
B✕
正確。預存程序可包含 SELECT、INSERT 等 SQL 存取指令,也能使用 IF、WHILE 等 T-SQL 流程控制指令,是完整的程式區塊。
C✕
正確。預存程序支援巢狀呼叫,一個預存程序可呼叫另一個預存程序,也可在運算式或 SQL 敘述中被呼叫使用。
D✓ 正確
錯誤(本題答案)。預存程序「可以」傳入輸入參數(IN)並能透過輸出參數(OUT)或 RETURN 回傳結果,參數化正是預存程序的重要特性。
預存程序(Stored Procedure)四大特點
| 特點 | 說明 | 好處 | 對應選項 |
|---|
| 預先編譯 | 建立時編譯並儲存於 DB | 執行快、省傳輸 | A |
| 完整程式邏輯 | SQL + 流程控制指令 | 可寫複雜業務邏輯 | B |
| 可互相呼叫 | 支援巢狀與運算式呼叫 | 程式模組化 | C |
| 參數化 | 可傳入參數、回傳結果 | 彈性與重用性高 | D |
D 選項把預存程序的特性完全反過來講。實際上「參數傳遞」正是預存程序最核心的功能之一,出題者故意用「不可以傳遞參數」來誤導考生,只要記得預存程序 = 可參數化的函式就不會上當。