5 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
create function getinv_name(@inv_code nvarchar(50))
RETURNS @TempTable table(inv_name nvarchar(50) ,
inv_model nvarchar(50))
AS
begin
insert into @TempTable(inv_name,inv_model)
select inv_name,inv_model from mate_inv_dict where inv_code=@inv_code
return
end
--這里需要提醒樓主的是 因?yàn)榉祷氐氖潜碜兞?所以不能像返回變量那樣調(diào)用這個(gè)函數(shù)
--給你寫個(gè)例子吧
select * from getinv_name('100001')

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
自定義函數(shù),采用返回一張表,那么就可以很多個(gè)值,目前我常采用這種方式,如下腳本所示:
1 2 3 4 5 | create function fun_test(@str1 varchar(20)) returns @t table(a varchar(10),b varchar(10)) begin insert into @t (a,b)values('變量1','變量2') end |

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
表中也是要參數(shù)的啊,光給表了,人家怎么知道你表里要返回什么啊~RETURN@tTABLE【(fchar(20),achar(20),bchar(6),cdatetime,dchar(4))】【】里面的是你要返回表中的參數(shù)@t是你表名的參數(shù)下面的insert你

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果你知道函數(shù)返回的列數(shù)跟類型,可以事先創(chuàng)建一個(gè)臨時(shí)表,然后insert 進(jìn)去
或者用select into from方法創(chuàng)建一個(gè)臨時(shí)表并填充數(shù)據(jù)

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
1、可以返回Table,來(lái)解決多值問題;
2、如果函數(shù)不是放到SQL查詢語(yǔ)句中使用,建議改為sp。這樣可以返回多個(gè)值,且可類型不同。
添加回答
舉報(bào)