sql 通过存储过程和自定义类型批量新增数据
1,建立存储过程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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,建立相对应的数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /****** 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,执行代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | /// <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; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步