1,建立存储过程

create PROCEDURE [dbo].[p_Company_Insert]
@CompanyCollection [CompanyTableType] READONLY
AS
INSERT INTO tb_Company (
[cpID]
,[cpHiID]
,[cpBuySellTypeID]
,[cpName]
,[cpShortName]
,[cpIndustry]
,[cpSell]
,[cpBuy]
,[cpAddressID]
,[cpAddress]
,[cpPost]
,[cpTel]
) SELECT
oc.[cpID]
,oc.[cpHiID]
,oc.[cpBuySellTypeID]
,oc.[cpName]
,oc.[cpShortName]
,oc.[cpIndustry]
,oc.[cpSell]
,oc.[cpBuy]
,oc.[cpAddressID]
,oc.[cpAddress]
,oc.[cpPost]
,oc.[cpTel]
FROM @CompanyCollection AS oc; GO

2,建立相对应的数据类型

/****** Object:  UserDefinedTableType [dbo].[CompanyTableType]    Script Date: 07/04/2014 10:20:51 ******/
CREATE TYPE [dbo].[CompanyTableType] AS TABLE(
[cpID] [int] NOT NULL,
[cpHiID] [int] NULL,
[cpBuySellTypeID] [nvarchar](200) NULL,
[cpName] [nvarchar](200) NOT NULL,
[cpShortName] [nvarchar](200) NULL,
[cpIndustry] [nvarchar](300) NULL,
[cpSell] [nvarchar](200) NULL,
[cpBuy] [nvarchar](200) NULL,
[cpAddressID] [int] NOT NULL,
[cpAddress] [nvarchar](300) NULL,
[cpPost] [nvarchar](100) NULL,
[cpTel] [nvarchar](100) NULL,
)
GO

3,执行代码

        /// <summary>
/// 单条添加,将datatable作为参数传进去,返回datatable的自增长编号(调用存储过程)
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
[WebMethod]
public DataTable BuySell_Insert(DataTable dt, string token)
{
CheckLoginedS(token);
if (dt.Rows.Count > 0 && dt.Rows != null)
{
tb_BuySell bs = new tb_BuySell();
DataTable bt = bs.BuySell_Insert(dt);
return bt;
}
else
{
return null;
}
} /// <summary>
/// 把datatable当参数,批量添加数据库中,返回datatable的新增行
/// </summary>
/// <param name="tb"></param>
/// <returns></returns>
public DataTable BuySell_Insert(DataTable tb)
{
DataTable dt = null;
CMD.CommandText = "p_BuySell_Insert";
CMD.CommandType = CommandType.StoredProcedure;
CMD.Parameters.Clear();
CMD.Parameters.AddWithValue("@BuySellCollection", tb);
dt = DB.DataTable(CMD);
return dt;
}

  

sql 通过存储过程和自定义类型批量新增数据的更多相关文章

  1. 11月16日《奥威Power-BI基于SQL的存储过程及自定义SQL脚本制作报表》腾讯课堂开课啦

           上周的课程<奥威Power-BI vs微软Power BI>带同学们全面认识了两个Power-BI的使用情况,同学们已经迫不及待想知道这周的学习内容了吧!这周的课程关键词—— ...

  2. mybatis学习之路----mysql批量新增数据

    原文:https://blog.csdn.net/xu1916659422/article/details/77971867 接下来两节要探讨的是批量插入和批量更新,因为这两种操作在企业中也经常用到. ...

  3. 使用EF批量新增数据十分缓慢

    使用EF来批量新增数据,发现效率非常的差,几千条数据时甚至需要几分钟来执行,迫于无奈使用sql来执行了. 今天偶然看到一篇关于EF的文章,才发觉原来是自己对EF不够了解的原因. 一般新增时我们是将所有 ...

  4. 批量新增数据(BuckCopy)

    批量新增数据(BuckCopy) 使用webService传输数据时要注意,Datatable中的数据类型,以及科学计数 /// <summary> /// 批量新增数据 /// < ...

  5. Oracle批量新增数据最佳实践

    一.需求描述 现在的项目改造过程中,从国产的Gbase数据库改造为Oracle数据库,遇到一个问题有的业务操作需要批量新增数据. 这也是一个比较常规的操作,有很多地方确实需要一次性新增多条数据.Gba ...

  6. MyBatis基础入门《十三》批量新增数据

    MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =============================== ...

  7. mybatis 学习笔记(4) —— 批量新增数据

    1.业务是从前台传入List<T> ,在controller层接受参数,并进行批量新增操作. 2.需要处理的细节 a) mybatis可以支持批量新增,注意数据表需要将主键设置成自增列. ...

  8. Sql自定义表类型批量导入数据

    -- 创建自定义表类型 CREATE TYPE [dbo].[App_ProductTable] AS TABLE( [p_name] [varchar](50) NOT NULL, [p_audio ...

  9. SQL中存储过程和自定义函数的区别

    存储过程:     存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...

随机推荐

  1. crawler_Docker_解决用 JavaScript 框架开发的 Web 站点抓取

    [转载,后续补上实践case] 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取 [编者的话]Prerender 服务能够为网络爬虫提供预先渲染的 ...

  2. Jquery--仿制360右下角弹出窗口

    原文:Jquery--仿制360右下角弹出窗口 先发浏览器效果图,给大家看. 要实现这样的效果,按照思路,第一步,写好CSS布局,将图片放到浏览器右下角的位置 CSS代码很灵活,我写的只是简单的一种而 ...

  3. javascript权威指南(1)

    javascript常用知识点: http://www.cnblogs.com/pingfan1990/p/4309223.html Function.prototype.bind()Function ...

  4. UVA 10139 Factovisors(数论)

    Factovisors The factorial function, n! is defined thus for n a non-negative integer: 0! = 1 n! = n * ...

  5. Android 平台 HTTP网速測试 案例 API 分析

    作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/25996817 工信部规定的网速測试标准 : 除普通网页測速 ...

  6. [ACM] poj 1064 Cable master (二进制搜索)

    Cable master Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 21071   Accepted: 4542 Des ...

  7. Swift入门教程:基本语法大全

    原文:Swift入门教程:基本语法大全       简介:                                                                        ...

  8. 在Eclipse下导入vlc-android并编译

    在Ubuntu14.04下载好了VLC的源代码后,VLC的Eclipseproject存放在"vlc-android"文件夹 root@dzt-VirtualBox:/home/d ...

  9. 2014值得期待的Erlang两本新书

    在2014年的开头就有这样一个令人振奋的好消息,Erlang有一本新书即将出版 <The Erlang Runtime System>,其作者happi在2013年3月份发布了这本书的写作 ...

  10. jmeter参数化之CSV Data Set Config

    在jmeter中,可以用CSV Data Set Config实现参数化. 1.准备参数化数据