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

 更新时间:2013年01月24日 16:12:48   作者:  
在做大型网站或者系统的时候,经常会遇到个问题就是批量插入或者修改数据库;今天这边不讲SqlBulkCopy,只简单讲sql自定义表类型,感兴趣的朋友可以了解下哦,希望本文对你有所帮助
在做大型网站或者系统的时候,经常会遇到个问题就是批量插入或者修改数据库。如果遇到这个问题,还是一条条记录来处理,这样的效率太低了,所以要考虑批量插入或者修改

今天这边不讲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,这样就能一次插入多条记录。

相关文章

  • mysql DISTINCT选取多个字段,获取distinct后的行信息方式

    mysql DISTINCT选取多个字段,获取distinct后的行信息方式

    这篇文章主要介绍了mysql DISTINCT选取多个字段,获取distinct后的行信息方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • MySQL的binlog日志使用详解

    MySQL的binlog日志使用详解

    这篇文章主要介绍了MySQL的binlog日志使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • MySQL四种备份表的实现方式

    MySQL四种备份表的实现方式

    本文主要介绍了MySQL四种备份表的实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • mysql workbench 设置外键的方法实现

    mysql workbench 设置外键的方法实现

    在MySQL Workbench中设置外键属性是非常方便的,本文就来介绍一下mysql workbench 设置外键的方法实现,具有一定能的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Linux下MySQL 5.5/5.6的修改字符集编码为UTF8的方法

    Linux下MySQL 5.5/5.6的修改字符集编码为UTF8的方法

    下面小编就为大家带来一篇Linux下MySQL 5.5/5.6的修改字符集编码为UTF8的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 在MySQL中同时查找两张表中的数据的示例

    在MySQL中同时查找两张表中的数据的示例

    这篇文章主要介绍了在MySQL中同时查找两张表中的数据的示例,即一次查询操作返回两张表的结果,需要的朋友可以参考下
    2015-07-07
  • 点赞功能使用MySQL还是Redis

    点赞功能使用MySQL还是Redis

    本文主要介绍了点赞功能使用MySQL还是Redis,这是最近面试时被问到的1道面试题,本篇博客对此问题进行总结分享,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • MySQL聚合查询与联合查询操作实例

    MySQL聚合查询与联合查询操作实例

    这篇文章主要给大家介绍了关于MySQL聚合查询与联合查询操作的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • 详解MySQL中的数据类型和schema优化

    详解MySQL中的数据类型和schema优化

    这篇文章主要介绍了MySQL中的数据类型和schema优化的相关资料,帮助大家更好的理解和学习MySQL的知识,感兴趣的朋友可以了解下
    2020-10-10
  • MySQL触发器基本用法详解【创建、查看、删除等】

    MySQL触发器基本用法详解【创建、查看、删除等】

    这篇文章主要介绍了MySQL触发器基本用法,结合实例形式分析了mysql触发器的基本创建、查看、删除等相关使用方法与注意事项,需要的朋友可以参考下
    2020-05-05

最新评论