<address id="xpjh9"><listing id="xpjh9"><meter id="xpjh9"></meter></listing></address>

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
<noframes id="xpjh9">
<noframes id="xpjh9">

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
    <form id="xpjh9"></form><address id="xpjh9"><listing id="xpjh9"><menuitem id="xpjh9"></menuitem></listing></address>

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

      • 2019-05-03 22:38 來源:未知

      一、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); 
      相關教程
      江苏快3 三河 | 眉山 | 临猗 | 绵阳 | 泉州 | 兴化 | 惠州 | 抚顺 | 三明 | 张家口 | 乌兰察布 | 抚顺 | 东莞 | 郴州 | 巴彦淖尔市 | 台湾台湾 | 漳州 | 台湾台湾 | 海拉尔 | 萍乡 | 图木舒克 | 白银 | 新沂 | 东阳 | 宝应县 | 和田 | 铁岭 | 石狮 | 武威 | 鸡西 | 玉树 | 贵港 | 商洛 | 公主岭 | 基隆 | 盐城 | 海拉尔 | 安阳 | 衡水 | 扬中 | 东莞 | 天门 | 威海 | 泉州 | 林芝 | 保定 | 玉环 | 崇左 | 仁寿 | 临汾 | 南通 | 任丘 | 文昌 | 梧州 | 乌兰察布 | 惠东 | 衡水 | 启东 | 商洛 | 莱芜 | 随州 | 桂林 | 中卫 | 安岳 | 东方 | 海北 | 六安 | 大丰 | 万宁 | 聊城 | 莒县 | 大丰 | 玉树 | 嘉峪关 | 吴忠 | 塔城 | 佳木斯 | 湖州 | 亳州 | 淄博 | 河南郑州 | 广西南宁 | 酒泉 | 甘肃兰州 | 包头 | 延安 | 红河 | 宝应县 | 惠东 | 日土 | 禹州 | 萍乡 | 安顺 | 岳阳 | 枣庄 | 四川成都 | 乐山 | 温州 | 大庆 | 福建福州 | 宝鸡 | 吴忠 | 沛县 | 汉中 | 澳门澳门 | 阿勒泰 | 天长 | 濮阳 | 昭通 | 珠海 | 巴音郭楞 | 安徽合肥 | 陇南 |