≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > MySQL

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

人气:380 时间:2020-07-09

这篇文章主要为大家详细介绍了mssql2008 自定义表类型实现(批量插入或者修改),具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编小韵来看看吧!

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

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

本文来自:http://www.q1010.com/177/10038-0.html

注:关于mssql2008 自定义表类型实现(批量插入或者修改)的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:MYSQL

您可能感兴趣的文章

  • MySQL表字段设置默认值(图文教程及注意细节)
  • MySQL的查询缓存说明
  • 修改MySQL5.5默认编码(图文步骤修改为utf-8编码)
  • 有关MySQL优化的一些东东整理
  • 修改MySQL密码与忘记MySQL密码的处理方法
  • MySQL报错Table MySQL.plugin doesn’t exist的解决方法
  • MySQL与Oracle的语法区别详细对比
  • linux MySQL 报错:MySQL:The server quit without updating PID file
  • sphinxql如何得到结果数及show meta的详细说明
  • 如何用命令行进入MySQL具体操作步骤
上一篇:ubuntu下设置MySQL自动备份的例子
下一篇:MySQL表字段设置默认值(图文教程及注意细节)
热门文章
  • mysql 修改character_set_server为utf-8的简单示例
  • 解决MySQL丢失文件localhost.localdomain.pid、mysql.sock的示例
  • MySQL 数据类型binary和varbinary的简单示例
  • MySQL:reading initial communication packet问题解决方法
  • MySql 表类型MYISAM、InnoDB区别
  • bash: mysql: command not found 的解决方法
  • MYSQL默认用户名ROOT修改方法
  • MySQL 常用命令菜鸟教程
  • MySQL 使用命令行新建用户并授予权限
  • MySql 数据库物理文件存放位置查看示例
  • 最新文章
    • MySQL查看死锁与解除死锁的简单示例
    • MySQL 慢查询的功能实例
    • MySQL查看死锁与去除死锁的简单示例
    • MySQL找出未提交事务的SQL的简单示例
    • MySQL锁阻塞的的简单示例
    • MySQL中的binary类型使用操作的示例
    • SQL优化教程之in与range查询的简单示例
    • MySQL 的 21 个规范、优化最佳实践!
    • MySQL 字符类型大小写敏感的简单示例
    • 解决mybatis-plus分页传入参数后sql where条件没有limit分页信息的问题

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。