zoukankan      html  css  js  c++  java
  • sql 通过存储过程和自定义类型批量新增数据

    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;
            }
    

      

  • 相关阅读:
    吊打面试官系列:Redis 性能优化的 13 条军规大全
    Laravel 7.6 发布
    Laravel 8 新功能:使用 schema:dump 来加速 Migration 和测试
    php中常用的4种运行方式
    基于 Redis 的订阅与发布
    [ida]使用pycharm编写IDApython
    visual studio 配置使生成的pdb文件中包含所有符号
    D/B位、一致与非一致代码段、向下拓展的实验与总结
    [debug] CE指针扫描扫出来为空
    error LNK2019: 无法解析的外部符号 _main,该符号在函数___tmainCRTStartup 中被引用
  • 原文地址:https://www.cnblogs.com/Aamir-Ye/p/4560961.html
Copyright © 2011-2022 走看看