?? 12-2-11.cfm.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>從存儲過程中獲得值</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋體"><b>
<p ALIGN="JUSTIFY">從存儲過程中獲得值</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">你可以從存儲過程中接受值。這些值可以直接在你的Active
Server Pages中使用(參看第24章“使用Commands</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">)。同樣,你可以在其他的存儲過程中獲得這些值。假如第一個過程調用了第二個存儲過程,則第一個過程能接受有第二個過程設置的參數值。</p>
<p ALIGN="JUSTIFY">例如,下面的存儲過程輸出變量@conclusion的值:</p>
<p ALIGN="JUSTIFY">CREATE PROCEDURE check_philosophers</p>
<p ALIGN="JUSTIFY">(@philosopher VARCHAR(30),@conclusion VARCHAR(30) OUTPUT)</p>
<p ALIGN="JUSTIFY">AS </p>
<p ALIGN="JUSTIFY">IF EXISTS(SELECT name FROM Philosophers WHERE </font><a
HREF="mailto:name=@philosopher"><font FACE="宋體" SIZE="3" COLOR="#0000ff"><u>name=@philosopher</u></font></a><font
FACE="宋體" SIZE="3">)</p>
<p ALIGN="JUSTIFY">SELECT @conclusion= </font><font SIZE="3">“</font><font FACE="宋體"
SIZE="3">A philosopher</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">ELSE</p>
<p ALIGN="JUSTIFY">SELECT @conclusion= </font><font SIZE="3">“</font><font FACE="宋體"
SIZE="3">Not a philisopher</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">注意在本例子中關鍵詞OUTPUT的使用。該關鍵詞緊跟在參數@conclusion的定義后面。這指明該參數將會用于從該過程中輸出信息。在這個簡單的例子中,參數的值將會是</font><font
SIZE="3">“</font><font FACE="宋體" SIZE="3">A philosopher</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">或</font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Not
a philisopher</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">,根據變量@philosophe的值的不同而變化。</p>
<p ALIGN="JUSTIFY">為了這些一個具有輸出參數的存儲過程,你需要在EXECUTE語句中使用關鍵詞OUTPUT
。假如你在一個批處理或者另外一個存儲過程中執行該過程時,你必須首先定義一個變量用于存儲從過程中傳遞出的值,如下面的例子所示:</p>
<p ALIGN="JUSTIFY">DELCARE @proc_results VARCHAR(30)</p>
<p ALIGN="JUSTIFY">EXECUTE check_philosophers </font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">Plato</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">,@proc_results
OUTPUT</p>
<p ALIGN="JUSTIFY">PRINT @proc_results</p>
<p ALIGN="JUSTIFY">在該例子中的第一個語句定義了將用于存儲從過程check_philosophersZ中傳出的參數值的變量。該變量將和輸出參數的數據類型一模一樣。第二個語句執行存儲過程。注意變量@proc_results后面必須緊跟關鍵詞OUTPUT。最后變量@proc_results的值被打印到屏幕上。</p>
<p ALIGN="JUSTIFY">你同樣可以使用名稱來接收輸出參數的值,下面就是一個簡單的例子:</p>
<p ALIGN="JUSTIFY">DECLARE @proc_results VARCHAR(30)</p>
<p ALIGN="JUSTIFY">EXECUTE check_philosophers @philosopher=</font><font SIZE="3">”</font><font
FACE="宋體" SIZE="3">Plato</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">,@conclusion=@proc_results
OUTPUT</p>
<p ALIGN="JUSTIFY">PRINT @proc_results</p>
<p ALIGN="JUSTIFY">注意在該EXECUTE語句中,參數的名稱總是列在前面。你要使用@conclusion=@proc_results來接收參數@conclusion的值,而不是你可能期望的@proc_results=@conclusion。</p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -