• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • SQL中函數返回表,傳遞一個參數,無法喚醒用戶自定義函數,解決方法!

    發表于:2007-05-25來源:作者:點擊數: 標簽:sql返回傳遞無法參數
    1: 把函數改成標量函數,及只返回一個值的方法,該方法根據具體情況修改既可.在此不討論該方法 2:用游標處理,用戶自定義函數返回表. 具體問題: CREATE function 函數(@字段1 as varchar(20),@字段2 as int ,@字段3 int) returns @Time table(列1 varchar(20),

    1: 把函數改成標量函數,及只返回一個值的方法,該方法根據具體情況修改既可.在此不討論該方法

    2:用游標處理,用戶自定義函數返回表.

    具體問題:

    CREATE function 函數(@字段1 as varchar(20),@字段2 as int ,@字段3 int)
    returns @Time  table(列1  varchar(20),列2 datetime,列3 varchar(8000))
    as
    begin
    --一系列操作后,插入數據到@Time
    end

    select dbo.函數('a',1,2,3)

    返回正確結果


    現在我就是想把函數參數,換成一個表的變量來代替??!

    select dbo.函數(a.column1,a.coulmn2,coulmn3,a.column4) from 表 a

    就不行。請問怎么改?一定要改成標量函數嗎??

    這樣的話可以用游標,不過性能很低

    if exists(select 1 from [tempdb]..[sysobjects] where id=object_id('[tempdb]..[#]'))
    drop table [tempdb]..[#]
    go
    create table #(列1  varchar(20),列2 datetime,列3 varchar(8000))
    declare cur cursor for select column1,column2,column3 from 表
    open cur
    declare @column1 varchar(20)
    declare @column2 varchar(20)
    declare @column3 varchar(20)
    fetch next from cur into @column1,@column2,@column3
    while @@fetch_status=0
    begin
         insert # select * from [dbo].函數(@column1,@column2,@column3)
         fetch next from cur into @column1,@column2,@column3
    end
    close cur
    deallocate cur

    select * from #
    drop table #


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>