The Wayback Machine - http://web.archive.org/web/20140105203243/http://msdn.microsoft.com:80/zh-tw/library/ms177609(v=sql.90).aspx
匯出 (0) 列印
全部展開
Expand Minimize
1 人當中有 1 人評分為有幫助- 為這個主題評分

CURSOR_STATUS (Transact-SQL)

可讓預存程序的呼叫者判斷程序是否已傳回給定參數之資料指標和結果集的純量函數。

主題連結圖示 Transact-SQL 語法慣例


CURSOR_STATUS 
          ( 
               { 'local' , 'cursor_name' } 
          | { 'global' , 'cursor_name' } 
          | { 'variable' , 'cursor_variable' } 
          ) 

'local'

指定一個常數來指示資料指標的來源是本機資料指標名稱。

'cursor_name'

這是資料指標的名稱。資料指標名稱必須符合識別碼的規則。

'global'

指定一個常數來指示資料指標的來源是全域資料指標名稱。

'variable'

指定一個常數來指示資料指標的來源是本機變數。

'cursor_variable'

這是資料指標變數的名稱。您必須利用 cursor 資料類型來定義資料指標變數。

smallint

傳回值 資料指標名稱 資料指標變數

1

資料指標的結果集至少有一個資料列。

非機密資料指標和索引鍵集資料指標,其結果集至少有一個資料列。

動態資料指標的結果集可以有零、一或多個資料列。

配置給這個變數的資料指標是開啟的。

非機密資料指標和索引鍵集資料指標,其結果集至少有一個資料列。

動態資料指標的結果集可以有零、一或多個資料列。

0

資料指標的結果集是空的。*

配置給這個變數的資料指標是開啟的,但結果集確定空白。*

-1

資料指標已關閉。

配置給這個變數的資料指標已關閉。

-2

不適用。

有下列幾種:

先前呼叫的程序未指派任何資料指標給這個 OUTPUT 變數。

先前呼叫的程序指派一個資料指標給這個 OUTPUT 變數,但程序完成時,這個資料指標在關閉狀態中。因此,這個資料指標已取消配置,並未傳回給發出呼叫的程序。

沒有指派給宣告的資料指標變數之資料指標。

-3

含指定名稱的資料指標不存在。

含指定名稱的資料指標變數不存在,或這個變數存在,但還沒有配置資料指標。

*動態資料指標永遠不會傳回這個結果。

這個範例會建立一個名稱為 lake_list 的程序,且會利用執行 lake_list 的輸出來作為一項 CURSOR_STATUS 檢查。

ms177609.note(zh-tw,SQL.90).gif附註:
這個範例相依於名稱為 check_authority (尚未建立的) 程序。

IF EXISTS (SELECT name FROM sysobjects
      WHERE name = 'lake_list' AND type = 'P')
   DROP PROCEDURE lake_list
GO
CREATE PROCEDURE lake_list
   ( @region varchar(30),
     @size integer,
     @lake_list_cursor CURSOR VARYING OUTPUT )
AS 
BEGIN
   DECLARE @ok SMALLINT
   EXECUTE check_authority @region, username, @ok OUTPUT
   IF @ok = 1
      BEGIN
      SET @lake_list_cursor = CURSOR LOCAL SCROLL FOR
         SELECT name, lat, long, size, boat_launch, cost
         FROM lake_inventory
         WHERE locale = @region AND area >= @size
         ORDER BY name
      OPEN @lake_list_cursor
      END
END
DECLARE @my_lakes_cursor CURSOR
DECLARE @my_region char(30)
SET @my_region = 'Northern Ontario'
EXECUTE lake_list @my_region, 500, @my_lakes_cursor OUTPUT
IF Cursor_Status('variable', '@my_lakes_cursor') <= 0
   BEGIN
   /* Some code to tell the user that there is no list of
   Lakes. */
   END
ELSE
   BEGIN
      FETCH @my_lakes_cursor INTO -- Destination here
      -- Continue with other code here.
END
本文對您有任何幫助嗎?
(剩餘 1500 個字元)

社群新增項目

新增
Image
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2014 Microsoft. 著作權所有,並保留一切權利。