zoukankan      html  css  js  c++  java
  • 使用TVP批量插入数据

    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();

  • 相关阅读:
    Vue组件别名及Ctrl跳转组件问题
    Scrapy Item Loaders
    scrapy Selector
    NSSM 注册windows服务
    windows 删除注册的服务
    RedisDesktopManager软件窗口不显示
    hexo + Matery主题 + Nginx + 阿里云 搭建个人博客网站
    sublime text3 安装插件
    关于 Windows 10 时间更新
    动画 | 什么是堆排序?
  • 原文地址:https://www.cnblogs.com/chpliy/p/8329663.html
Copyright © 2011-2022 走看看