当前位置:  数据库>mysql

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

    来源: 互联网  发布时间:2014-10-07

    本文导语:  在做大型网站或者系统的时候,经常会遇到个问题就是批量插入或者修改数据库。如果遇到这个问题,还是一条条记录来处理,这样的效率太低了,所以要考虑批量插入或者修改 今天这边不讲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,这样就能一次插入多条记录。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mssql对已创建表的某个字段修改为默认值
  • mssql修改数据库名称方法举例
  • MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
  • 不同版本MSSQL清除日志方法介绍
  • 如何在LINUX下安装MSSQL 是否可以在LINUX下安装MSSQL
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • mysql与mssql的md5加密语句
  • flyingcrean,来讲一下在LINUX中访问MSSQL。
  • MSSQL附加数据库拒绝访问提示5120错误的处理方法
  • 基于mssql导mysql遇到的问题
  • 请问哪里有for mssql的jdbc驱动程序下载?
  • Tomcat已设置成功,但不会连接数据库mssql. 求教。
  • mssql @@ERROR 使用
  • MSSQL 将截断字符串或二进制数据问题的解决方法
  • freetds连接MSSQL2000,应用程序读出来的数据中文部分全是问号!!
  • 可以用JAVA直接访问MSSQL2000的Analysis Services吗?
  • mssql中得到当天数据的语句
  • mssql查找备注(text,ntext)类型字段为空的方法
  • mssql 指定字段编号sql语句
  • MSSQL output使用
  • 找一找免费的MSSQL的JDBC驱动。一定给分!
  • 我下载了bea的mssql的jdbc驱动程序,请问如何安装?
  • 请问,如果连接一个Mssql的数据库。并操作里面的数据。谢谢了:)
  • 为jdbc.mssql抓狂!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3