iT邦幫忙

0

PROCEDURE Cusor 寫法請教

請問大大,
將 Cusor FOR 後的 SELECT 中的 WHERE 傳入變數的寫法是什麼?
1.若將 TaskId='65690' 可以執行.
2.TaskId=@TaskId 則跑不出結果.
是寫法有問題 ?

============================

ALTER PROCEDURE [dbo].[UP_T100_aint310](@TaskId INT)

AS
BEGIN

set @TaskId='65690'
--定義Cursor並打開
DECLARE MyCursor Cursor FOR --宣告,名稱為MyCursor

-- 此區段可以撰寫找出的資料
SELECT inbjdocno,inbjseq,inbj009,inbj010,inbjua001,inbjua002
FROM [GoodDB_test].[dbo].[T100_INBJ]
WHERE TaskId=@TaskId

Open MyCursor

sion iT邦新手 5 級 ‧ 2019-10-15 13:36:24 檢舉
要先declare TaskId吧
joy036 iT邦研究生 4 級 ‧ 2019-10-15 13:39:17 檢舉
ALTER PROCEDURE [dbo].[UP_T100_aint310](@TaskId INT)
這裡已宣告了

1 個回答

0
allenlwh
iT邦研究生 3 級 ‧ 2019-10-15 13:49:52
最佳解答

一開始宣告@TaskId 為INT
自行指定值時,set @TaskId='65690'
試試將@TaskId改為varchar(10)

ALTER PROCEDURE [dbo].[UP_T100_aint310](@TaskId varchar(10))
allenlwh iT邦研究生 3 級 ‧ 2019-10-15 13:51:42 檢舉

呼叫執行:

exec [dbo].[UP_T100_aint310] '65690'

我要發表回答

立即登入回答