![]() |
||
*停權中*
加入日期: Aug 2004
文章: 317
|
初學者問簡單的SQL Server預存程序問題
由於剛接觸SQL Server
以前人寫的預存程序(如最下面) 請問: 一、此句的OUTPUT是作什麼用呢?@MESSAGE1 VARCHAR(40) OUTPUT 二、請問此變數@NO1,為什麼不在"AS"之前作變數宣告呢? 謝謝 ALTER PROCEDURE ChkUSER_ID ( @MESSAGE1 VARCHAR(40) OUTPUT, @ID1 VARCHAR(10) ) AS DECLARE @NO1 INTEGER SET @MESSAGE1='' SELECT @NO1=COUNT(*) FROM USER1 |
|||||||
![]() |
![]() |
Regular Member
![]() ![]() 加入日期: Oct 2003
文章: 92
|
以下的文字應該都有解答你的問題。
關於第二個問題,在下在學校時,老師都說是T-SQL 它固定的語法,叫我們照著作。 語法 ALTER PROC [ EDURE ] procedure_name [ ; number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] 引數 procedure_name 是要變更的程序名稱。程序名稱必須與識別項的規則一致。 ;number 是用來群組相同名稱之程序的現有選擇性整數,所以可以與 DROP PROCEDURE 陳述式一起卸除。 @parameter 程序的參數。 data_type 是參數的資料型別。 VARYING 指定結果集被當做輸出參數支援 (由預存程序動態建構且其內容會變動)。僅適用於資料指標參數。 default 參數的預設值。 OUTPUT 表示該參數為一傳回參數。 n 是指出最多可指定 2.100 個參數的替代符號 (Placeholder)。 {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION} RECOMPILE 指出 Microsoft𦲷 SQL Server萾 不會快取此程序的計劃,並在執行時期重新編譯此程序。 ENCRYPTION 指出 SQL Server 將包含 ALTER PROCEDURE 陳述式文字的 syscomments 資料表項目加密。使用 ENCRYPTION 可防止程序被被當做 SQL Server 複本的一部分發行。 附註 在升級過程中,SQL Server 會使用儲存在 syscomments 中的加密註解來重新建立加密的程序。 FOR REPLICATION 指示建立作為複本的預存程序不可在「訂閱者」上執行。以 FOR REPLICATION 選項建立的預存程序是用作預存程序篩選器,而且只能在複寫過程中被執行。這個選項不能與 WITH RECOMPILE 選項一起使用。 AS 是程序將採取的動作。 |
||
![]() |
![]() |
*停權中*
加入日期: Aug 2004
文章: 317
|
懂了,非常謝謝......
|
![]() |
![]() |