博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用TVP批量插入数据
阅读量:6252 次
发布时间:2019-06-22

本文共 1160 字,大约阅读时间需要 3 分钟。

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

你可能感兴趣的文章
提高你的Java代码质量吧:使用构造函数协助描述枚举项
查看>>
Struts2 学习笔记20 类型转换part2 写自己的转换器
查看>>
网站接入支付宝
查看>>
mybatis+spring配置
查看>>
新浪微博客户端(31)-显示相册图片上的GIF标记
查看>>
idea 项目打包发布
查看>>
x:Name 与 Name 有时候是不一样的。
查看>>
【ASP.NET】如何在asp后台实现弹出对话框
查看>>
XSS (Cross Site Scripting) Prevention Cheat Sheet(XSS防护检查单)
查看>>
Windows下将程序打包为安装包(最为简易的方式)
查看>>
这个月干啥去了?——H5+移动应用实战开发
查看>>
GMT时间转换为当地时间的方法
查看>>
分布式拒绝服务攻击 DDoS
查看>>
Netstat命令详解
查看>>
软件测试面试题整理
查看>>
Jmeter-Maven-Plugin高级应用:Proxy Configuration
查看>>
20. Spring Boot Servlet【从零开始学Spring Boot】
查看>>
让一个做了10PHPer的妹子员告诉你PHP7 的新特性的使用
查看>>
OPPO 立足国内放眼世界 寻求新的增长引擎
查看>>
Roadstar公司CTO衡量回应合伙人周光被开除:怎奈遇人不淑
查看>>