PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
影 子
*停權中*
 
影 子的大頭照
 

加入日期: 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
     
      
舊 2006-12-13, 09:55 AM #1
回應時引用此文章
影 子離線中  
b1981
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

是程序將採取的動作。
 
舊 2006-12-13, 11:27 AM #2
回應時引用此文章
b1981離線中  
影 子
*停權中*
 
影 子的大頭照
 

加入日期: Aug 2004
文章: 317
懂了,非常謝謝......
舊 2006-12-13, 01:20 PM #3
回應時引用此文章
影 子離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是08:02 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。