在預存程序中使用敘述時,需注意以下的限制:
1.在預存程序中,有些敘述不可使用,包括:
而除了上表以外的其他敘述則可以使用,甚至我們可以在預存程序中建立物件(例如CREATE TABLE)並進行存取;也就是說,在編譯預存程序時,其內所參照到的物件可以不存在,只要在該敘述實際執行時,所參照的物件已經存在即可。
2.在同一個資料庫中,只要使用不同的結構描述,便可以建立相同名稱的物件。因此不管執行者是誰,只要預存程序中未指明物件的結構描述,都會先找以預存程序所屬的結構描述來尋找物件,找不到的話再換用"dbo.物件",若都找不到則產生錯誤訊息。
3.有些指令在執行時若未指定結構描述,會固定以目前使用者的預存結構描述來尋找或建立物件,這些指令包括:
因此在預存程序中使用這些敘述時,最好要同時指明結構描述,以免其他使用者在執行時發生預期之外的結果。
參數傳遞的技巧
當我們執行預存程序時,若未指明參數名稱,則必須依照預存程序所需的參數依序傳過去;而且除非該參數有指定預存程序並且是在最後面,否則不可以省略。
預存程序的3種傳回值
1.在程序中以"RETURN n"傳回整數值。
2.在參數中指定OUTPUT選項的參數。
3.預存程序中執行敘述(例如SELECT)所傳回的資料集(RecordSet)及通知訊息。
1.在預存程序中,有些敘述不可使用,包括:
而除了上表以外的其他敘述則可以使用,甚至我們可以在預存程序中建立物件(例如CREATE TABLE)並進行存取;也就是說,在編譯預存程序時,其內所參照到的物件可以不存在,只要在該敘述實際執行時,所參照的物件已經存在即可。
2.在同一個資料庫中,只要使用不同的結構描述,便可以建立相同名稱的物件。因此不管執行者是誰,只要預存程序中未指明物件的結構描述,都會先找以預存程序所屬的結構描述來尋找物件,找不到的話再換用"dbo.物件",若都找不到則產生錯誤訊息。
3.有些指令在執行時若未指定結構描述,會固定以目前使用者的預存結構描述來尋找或建立物件,這些指令包括:
因此在預存程序中使用這些敘述時,最好要同時指明結構描述,以免其他使用者在執行時發生預期之外的結果。
參數傳遞的技巧
當我們執行預存程序時,若未指明參數名稱,則必須依照預存程序所需的參數依序傳過去;而且除非該參數有指定預存程序並且是在最後面,否則不可以省略。
預存程序的3種傳回值
1.在程序中以"RETURN n"傳回整數值。
2.在參數中指定OUTPUT選項的參數。
3.預存程序中執行敘述(例如SELECT)所傳回的資料集(RecordSet)及通知訊息。