服务器之家

服务器之家 > 正文

mssql2008 自定义表类型实现(批量插入或者修改)

时间:2019-12-16 15:00     来源/作者:MSSQL教程网

在做大型网站或者系统的时候,经常会遇到个问题就是批量插入或者修改数据库。如果遇到这个问题,还是一条条记录来处理,这样的效率太低了,所以要考虑批量插入或者修改 

今天这边不讲SqlBulkCopy,只简单讲sql自定义表类型。因为目前的项目我用到了分表的方式,用存储过程比较方便自动创建分表。现在把我目前写的功能简单做个记录,也方便以后自己查阅 

第一步,在数据库里点击 新建查询 创建相应的sql 

复制代码代码如下:


--======自定义表类型Demo====== 
--创建表 
create table tab 

tabvalue varchar(10) 

go 
--创建自定义表类型 
create type Type_tab as table 

Type_tabvalue varchar(10) 

go 
--创建 存储过程 
create procedure p_Tab 

@ptab Type_tab readonly 

as 
begin 
insert into tab select * from @ptab 
end 
--sql 测试表类型 type1 
declare @tt Type_tab 
insert into @tt values('a') 
insert into @tt values('b') 
insert into @tt values('c') 
insert into tab select * from @tt 
select * from tab 
--sql 测试表类型 type2 
declare @tt2 Type_tab 
insert into @tt2 values('a') 
insert into @tt2 values('b') 
insert into @tt2 values('c') 
execute p_Tab @tt2 


第二步 asp.net 调用 存储过程 

复制代码代码如下:


using (SqlConnection conn =SqlHelper.Settings.GetSqlConnection(true)) 

try 

DataTable DtAdd = new DataTable(); 
DtAdd.Columns.Add("tabvalue"); 
DtAdd.Columns["tabvalue"].DataType = System.Type.GetType("System.String"); 
foreach (ModelEnt rl in List) 

DataRow Dr = DtAdd.NewRow(); 
Dr["tabvalue"] = rl.tabvalue; 
DtAdd.Rows.Add(Dr); 

//int Rt = SqlHelper.SqlHelper.SqlBulkCopy(DtAdd, TableName, conn); 
SqlCommand cmd = new SqlCommand("p_Tab", conn); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.Parameters.Add("@ptab", SqlDbType.Structured).Value =DtAdd; 
if (conn.State == ConnectionState.Closed) 

conn.Open(); 

return cmd.ExecuteNonQuery(); 

catch (Exception ex) 

#if DEBUG 
throw ex; 
#else 
return -10000; 
#endif 

finally 

conn.Close(); 


ModelEnt 是tab表对应的实体类。list 是ModelEnt 的一个集合,这样可以实现多个row,这样就能一次插入多条记录。

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部