<rp id="wnpn7"><ruby id="wnpn7"></ruby></rp>
<progress id="wnpn7"><track id="wnpn7"><rt id="wnpn7"></rt></track></progress>
<ruby id="wnpn7"></ruby>
<ruby id="wnpn7"><blockquote id="wnpn7"><div id="wnpn7"></div></blockquote></ruby>

    1. <em id="wnpn7"><ruby id="wnpn7"><input id="wnpn7"></input></ruby></em>
      1. <button id="wnpn7"><acronym id="wnpn7"></acronym></button><button id="wnpn7"><acronym id="wnpn7"></acronym></button>

        <rp id="wnpn7"><acronym id="wnpn7"></acronym></rp>

        <li id="wnpn7"><object id="wnpn7"><u id="wnpn7"></u></object></li>
        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 數據庫 > T-SQL >
        • sql語句大全之MSSQL 存儲過程中 表值參數用法

        本站最新發布    SQL Server 2016數據庫視頻教程
        試聽地址  
        http://www.squ68.com/eschool/SQLxin3721/

        一、SQL自定義表類型簡介


        1.1SQL自定義表類型簡介

        在SQL-server中,用戶將一個表結構定義為一個新的用戶類型,
        并且可以將這個用戶自定義類型作為 存儲過程 函數 SQL語句中的參數類型


        創建一個 自定義 “表類型”

        CREATE TYPE [dbo].[tableTest] AS TABLE(
        	[a] [varchar](30) NULL,
        	[b] [varchar](100) NULL
        )
        

        注意事項:
        1 表類型不能做為列定義的列類型
        2 創建表類型后,不可以執行 Alter Type ,只可以進行 Create type drop type
        3 創建表類型時,計算列不 可以調用用戶自定義函數
        4 創建表類型 不能為表類型指定默認值
        5 創建表類型 禁止使用非聚集索引



        1.2 SQL自定義表類型應用場景

        大數據庫插入
        存儲過程中 將常用的臨時表定義為一個表類型 簡化代碼,使代碼整齊


        二、SQL自定義表類型—舉例應用


        2.1 存儲過程調用自定義表類型

         定義存儲過程
         

        CREATE proc [dbo].[pr_testTableType] @keyId varchar(36), @tableInfo tableTest readOnly --- 自定義表類型必須使用readonLy as begin create table #t (keyId int identity,a varchar(200),b varchar(200)) insert into #t (a,b) select a,b from @tableInfo t select * from #t truncate table #t drop table #t end
         c# 代碼調用存儲過程 (采用參數化的方式發送此參數)
        
                      DataTable tb = new DataTable();
                    DataColumn a = new DataColumn("a");
                    DataColumn b = new DataColumn("b");
                    tb.Columns.Add(a);tb.Columns.Add(b);
        
                    DataRow r1 =tb.NewRow();
                    r1["a"] ="測試1----";
                    r1["b"] ="測試2";
                    
                    tb.Rows.Add(r1);
        
        
                    SqlParameter[] p = new SqlParameter[]{
                        new SqlParameter("@keyId",System.Guid.NewGuid().ToString()),
                        new SqlParameter("@tableInfo",tb)
                    };
                    
        
        	 // 方法二:
                 //   SqlParameter tmp =   new SqlParameter("@tableInfo",SqlDbType.Structured);
                 //  tmp.SqlValue = tb;
        
                 //  SqlParameter[] p = new SqlParameter[]{
                 //       new SqlParameter("@keyId",System.Guid.NewGuid().ToString()),                
                 //      tmp
                 //  };
        
        
                    db.ExecProcParameterReDataSet("pr_testTableType",p); 
        相關教程
                
        免费看成年人视频大全_免费看成年人视频在线观看