TVP(全称 :Table-Valued Parameter)

叫做表值参数(Table-Valued Parameter)是SQL2008的一个新特性。顾名思义,表值参数表示你可以把一个表类型作为参数传递到函数或存储过程里。

第一步:创建一个Type类型和写入数据的原始表结构相同

CREATE TYPE [dbo].[TestTVP] AS TABLE(
[TID] [bigint] NOT NULL,
[DepID] [nvarchar](100) NOT NULL,
[DepName] [nvarchar](512) NOT NULL,
[DataChange_CreateTime] [datetime] NOT NULL,
[DataChange_LastTime] [datetime] NOT NULL,
PRIMARY KEY CLUSTERED
(
[TID] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)
GO

第二步:创建存储过程

CREATE PROCEDURE [dbo].[SP_TestTVP_I]
(
@TestTVP TestTVP READONLY
)
AS
DECLARE @retcode int, @rowcount int
SET LOCK_TIMEOUT 1000
SET NOCOUNT ON

INSERT INTO 原始表名(列)
SELECT 表参数列
FROM @TestTVP

第三步:C#代码使用

//需要构建Table数据或者从表中查询的数据返回到Table

SqlConnection connection = new SqlConnection("");
SqlCommand command = new SqlCommand();
command.Connection = connection;
connection.Open();
command.CommandText = "[dbo].[SP_TestTVP_I]";
command.CommandType = CommandType.StoredProcedure;
SqlParameter tvpParam = command.Parameters.AddWithValue("@TestTVP", insertTab);
tvpParam.SqlDbType = SqlDbType.Structured;
command.ExecuteNonQuery();
command.Parameters.Clear();
connection.Close();

转载于:https://www.cnblogs.com/chpliy/p/8329663.html

使用TVP批量插入数据相关推荐

  1. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  2. oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...

    本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...

  3. linux批量es数据,Elasticsearch批量插入数据

    Elasticsearch批量插入数据 使用bulk批量操作数据库 1. 创建批量操作文件 格式: {"index":{"_index":"home& ...

  4. android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本)

    android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本) 参考文章: (1)android SQLite 批量插入数据慢的解决方案 (针对于不同的andro ...

  5. php addall,ThinkPHP3.2框架使用addAll()批量插入数据的方法

    这篇文章主要介绍了ThinkPHP3.2框架使用addAll()批量插入数据的方法,结合实例形式分析了thinkPHP针对单条数据插入及批量数据插入操作的相关实现技巧,需要的朋友可以参考下 本文实例讲 ...

  6. .NET Excel 2003 批量插入数据很慢的解决办法

    .Net利用Office组件的操作Excel批量插入数据据的时候,会非常慢. 我也曾经想利用其它组件来实现这个功能,但是效果不是很理想.后来经过查阅资料,发现Excel.Range的Value属性是O ...

  7. bulk_create 批量插入数据

    def booklist(request):# 动态插入100条数据for i in range(100):models.Book2.objects.create(name='第%s本书'%i)#批量 ...

  8. shell批量插入数据

    用shell脚本批量插入数据,很简单.直接看代码: #! /bin/bashhost="xxx" port="xxx" userName="xxx&q ...

  9. MySQL批量插入数据的几种方法

    最近公司要求测试数据库的性能,就上网查了一些批量插入数据的代码,发现有好几种不同的用法,插入同样数据的耗时也有区别 别的先不说,先上一段代码与君共享 方法一: package com.bigdata; ...

最新文章

  1. Audio Streamer
  2. 2019年最新最全运维技能图谱
  3. 洛谷P3374 【模板】树状数组 1(Python和C++代码)
  4. 常用HTTP状态码趣(曲)解
  5. 【模型调优】风控模型调优相关知识
  6. 01-Swift 介绍
  7. 同步方法 调用异步防范_.NET Web应用中为什么要使用async/await异步编程?
  8. 今天看到导师给我的批注哭了...
  9. MySQL学习笔记:MySQL管理
  10. sublime 设置自动更新_Win10关闭自动更新的三种方法
  11. [Visual Studio] 重置默认设置 还原默认设置
  12. 自定义控件设置宽度_自定义View开篇,必须跨过的一道坎儿
  13. 笨办法学python3-笨办法学python3PDF
  14. 相关滤波跟踪·MOSSE算法的梳理
  15. 关于2019高压油管网格搜索可视化Python作图
  16. servlet实现统计网站访问量
  17. MATLAB 线性动态范围调整
  18. DNA数字信息存储的研究进展
  19. Nasdaq股票代码表 zt
  20. Java和Python,哪个更适合开发AI人工智能?

热门文章

  1. 第五章 染料结构对染色性能的影响单元测验
  2. ffmpeg-从flv文件中提取AAC音频数据保存为文件
  3. 使用python 创建快捷方式
  4. [linux]wait详解
  5. Linux 进程学习(四)------ sigaction 函数
  6. 计算机网络(一)计算机网络体系
  7. JZ2440用U-Boot给Nand-Flash烧写程序时报错:NAND write: incorrect device type in bootloader ‘bootloader‘ is not
  8. verilator编译 更新文件的规则
  9. 计算机系统 学习笔记(0)南京大学(一)第一周
  10. Java进阶学习资料!dockerjar内存