亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL SERVER IN參數化處理

系統 2290 0

方法一、

    CREATE TABLE [dbo].[Users]

    (

      Id INTEGER IDENTITY(1, 1)

                 PRIMARY KEY ,

      Name NVARCHAR(50) NOT NULL

    ) ;

GO
  

//循環插值

    DECLARE @Counter INTEGER

SET @Counter = 1

WHILE ( @Counter <= 100 ) 

    BEGIN

        INSERT  Users

                ( Name

                )

        VALUES  ( 'Test Users #' + CAST(@Counter AS VARCHAR(10))

                )

        SET @Counter = @Counter + 1

    END
  

?

    --拆分函數

CREATE FUNCTION dbo.fnSplit 

   (  @List      varchar(8000), 

      @Delimiter varchar(5)

   ) 

   RETURNS @TableOfValues table 

      (  RowID   smallint IDENTITY(1,1), 

         [Value] varchar(50) 

      ) 

AS 

   BEGIN

    

      DECLARE @LenString int 

 

      WHILE len( @List ) > 0 

         BEGIN 

         

            SELECT @LenString = 

               (CASE charindex( @Delimiter, @List ) 

                   WHEN 0 THEN len( @List ) 

                   ELSE ( charindex( @Delimiter, @List ) -1 )

                END

               ) 

                                

            INSERT INTO @TableOfValues 

               SELECT substring( @List, 1, @LenString )

                

            SELECT @List = 

               (CASE ( len( @List ) - @LenString ) 

                   WHEN 0 THEN '' 

                   ELSE right( @List, len( @List ) - @LenString - 1 ) 

                END

               ) 

         END

          

      RETURN 

      

   END 


  

//存儲過程

    CREATE PROCEDURE [dbo].[spUsers]

    @UsersIDs VARCHAR(8000)

AS 

    BEGIN

        SELECT  u.Id ,

                u.Name

        FROM    [dbo].[Users] u

                JOIN dbo.fnSplit(@UsersIDs, ',') t ON u.Id = t.value

    END

GO
  

//執行

    EXECUTE [dbo].[spUsers] '1,2,3,4'
  


方法二、

    CREATE TYPE UsersIDTableType AS TABLE (ID INTEGER PRIMARY KEY);

GO
  


//存儲過程

    CREATE PROCEDURE [dbo].[spGetUsersTable]

    @UsersIDs UsersIDTableType READONLY

AS 

    BEGIN

        SELECT  c.ID ,

                c.Name

        FROM    [dbo].[Users] c

                JOIN @UsersIDs t ON c.Id = t.ID

    END

GO
  


//調用

    DECLARE @Ids UsersIDTableType

INSERT  @Ids

VALUES  ( 5 )

INSERT  @Ids

VALUES  ( 6 )

INSERT  @Ids

VALUES  ( 7 )

EXECUTE [dbo].[spGetUsersTable] @Ids
  


//在.NET下如何調用?

調用也比較簡單,將參數類型限制為

    SqlDbType.Structured
  

那么值可是是任意IEnumerable, DataTable, 或者DbDataReader。

SQL SERVER IN參數化處理


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品视频久久久久 | 欧美一区亚洲 | 国产综合视频 | 久久精品这里热有精品2015 | 久久精品久久久久 | 四虎影视免费在线观看 | 视频在线日韩 | 欧美三级午夜理伦三级小说 | 四虎永久网址 | 桃色婷婷| 成年人网站在线 | 久久久久久久久久久福利观看 | 香蕉视频在线观看国产 | 国产在线播放一区二区 | 精品日韩二区三区精品视频 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠久久丁香 | 日韩成人影视 | 99久在线 | 男女羞羞免费视频 | 色综合欧美色综合七久久 | 亚洲国产精品视频在线观看 | 天天干天天曰天天操 | 性生活视频网 | 国产精品青草久久福利不卡 | 青青草99热这里都是精品 | 四虎永久地址入口 | 久久久青草 | 91青娱乐在线 | 久久精品亚洲热综合一本奇米 | 国产欧美精品一区二区三区 | 免费看一毛一级毛片视频 | 亚洲影院中文字幕 | 91久久精品视频 | 国产亚洲精品久久精品6 | 99精品国产综合久久久久 | 精品国产免费久久久久久婷婷 | 97影院理论片在线观看 | 久久精品免视看国产盗摄 | 福利网站在线观看 | 91视频免费看 | 日本高清中文字幕一区二区三区 |