如題:
我寫了個自定義函數,裡面有一個遊標,遊標部門單獨運行沒有問題,但是將遊標放在自定義函數中就有如下提示:
Msg 170, Level 15, State 1, Procedure queryInfo, Line 6
行 6: '72-B11IE01015BRI001' 附近的語法不正確。
Msg 178, Level 15, State 1, Line 14
此處不得使用會有傳回值的 RETURN 陳述式。
自定義函數如果沒有將遊標部分放進去也可以執行,現將函數貼出如下:
create function queryInfo(@pId nvarchar(100))
RETURNS nvarchar(50) AS
begin
declare bomPn cursor
for select parent,pn from sz6_bom..bom
where parent='72-B11IE01015BRI001'
go
declare @parentId nvarchar(100)
declare @pnId nvarchar(100)
open bomPn
fetch next from bomPn into @parentId,@pnId
while @@fetch_status=0
begin
print @parentId
print @pnId
fetch next from bomPn into @parentId,@pnId
end
close bomPn
deallocate bomPn
return 'asdff'
end
go
執行以下函數可以正確運行:
create function queryInfo(@pId nvarchar(100))
RETURNS nvarchar(50) AS
begin
return 'asdff'
end
go
執行遊標也正常:
declare bomPn cursor
for select parent,pn from sz6_bom..bom
where parent='72-B11IE01015BRI001'
go
declare @parentId nvarchar(100)
declare @pnId nvarchar(100)
open bomPn
fetch next from bomPn into @parentId,@pnId
while @@fetch_status=0
begin
print @parentId
print @pnId
fetch next from bomPn into @parentId,@pnId
end
close bomPn
deallocate bomPn
查了半天沒有發現哪裡出現問題,請各位幫忙檢查下!謝謝!!