SQL批量插入出现 类型转换错误】的更多相关文章

1.原因:在使用SqlBulkCopy批量操作时,Map映射会出现表结点对应错误 2.解决方案:自己先建立字段映射 using (SqlConnection con = new SqlConnection(DbConfig.CsNisConnString)) { con.Open(); using (SqlTransaction tran = con.BeginTransaction()) { SqlBulkCopy bc = new SqlBulkCopy(con, SqlBulkCopyOp…
ado.net已经有了sqlBulkCopy, 但是那个用xml格式,网络传输数据量太大. 自己实现了一个,传输尽量少的字节. 性能没对比过,有需要的自己拿去测试. using System.Data.SqlClient; namespace RaywindStudio.DAL { /// <summary> /// MSSQL批量插入表 /// </summary> public static class SqlBulkInsert { private static bool i…
参考资料:http://www.w3school.com.cn/sql/sql_union.asp   UNION:操作符用于合并两个或多个select语句的结果集.                 注意   union内部的select语句必须拥有相同的列数并且字段类型相同,且顺序相同. INSERT:  批量插入结果集                1. insert into table                 select x,y from A                 U…
http://www.cnblogs.com/azhqiang/p/4050331.html 在进行数据库操作时, 我们经常会遇到批量向数据库中写入记录的情况. 在这里我提供3种操作方式:   1.  单条语句循环插入, 这是最笨的方法: for i := 0 to 100 do   ADOCommand1.Execute('IINSERT INTO .....')   //伪码, 只是说明意思   2.  多条语句批量插入, 将多条Insert语句拼成一条语句, 一次执行: for i :=…
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.Common;using System.Data.Entity;using System.Data.SqlClient;using System.Linq; namespace TY.Tools{ /// <summary> /// 批量插入 /// </summary&…
create  PROCEDURE insertinto as begindeclare @id int;set @id=1;while @id<10begininsert into person (id,name) values(@id,'123')set @id=@id+1endend 批量插入数据: 定义变量,执行循环,将int转化为varchar.例如:convert(varchar(10),@bmc) declare @name  varchar(50);declare @pwd va…
批量插入100条记录 set nocount on declare @i int=1; while @i<=100 begin Insert into Client(id,ClientCode,ClientName,ClientGroup,stype,Contact,ClientTel,SendAddress) select @i+8,'C'+right('000000'+CAST(@i as varchar),6),'Customer'+CAST(@i as varchar),'B组','E帐…
后面进行完善修改. /*批量插入数据*/ 这个比较完善.直接插入数据库表. INSERT INTO `goods_transverter` ( `code`,`es_id`,`barcode`, `name`) SELECT t.`妈宝条码`,t.`标识ID`,t.`商品条码`,t.`商品名称` FROM hbx.`商品数据` as t 查询华创的条码的配送价,采购价 ,),,),gb.`name` FROM hbx.`商品数据` as sp LEFT JOIN arm_changsha.goo…
1.有一个普通的表t_asset,只有2个字段id,ip 没有索引 2.当用insert into t_asset(id,ip) values(?,?),(?,?) 1200多条记录时,发现竟然用了30秒左右,不可能性能这么差啊 3.后来各种google,发现jdbc的连接串里,只配置了字符集啥也没配,默认是没有开启批量插入功能的 修改如下 jdbc:mysql://11.51.194.152:3358/test?rewriteBatchedStatements=true&useUnicode=…
测试数据 -- 创建测试表1 CREATE TABLE `testtable1` ( `Id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `UserId` INT(11) DEFAULT NULL, `UserName` VARCHAR(10) DEFAULT NULL, `UserType` INT(11) DEFAULT NULL, PRIMARY KEY (`Id`), UNIQUE KEY `IX_UserId` (`UserId`) ) ENG…
使用SqlBulk #region 方式二 static void InsertTwo() { Console.WriteLine("使用Bulk插入的实现方式"); Stopwatch sw = new Stopwatch(); DataTable dt = GetTableSchema(); using (SqlConnection conn = new SqlConnection(StrConnMsg)) { SqlBulkCopy bulkCopy = new SqlBulkC…
使用: ROW_NUMBER() over(order by ID desc) insert into dbo.Aa(Name,Nums) select top 10 NickName,ROW_NUMBER() over(order by ID desc) as Nums from td_UserInfo 插入后,Nums的字段就是从1开始的自增数字.…
背景: 需要更新一些不规范的时间格式,如将某个时间格式化为yy-MM-dd,实际上为 yy-MM-dd hh:mm:ss,并且需要提供回滚脚本. 例如:规范化时间的脚本如下: ,) WHERE test_date>'2017-06-01 00:00:00' AND test_date<'2017-09-07 00:00:00' 这个脚本是ok,但执行时受到影响的行数如果有几百条甚至上千条记录的话,回滚脚本怎么写呢? 模板如下: update test set test_date= '' whe…
1.每4000条插入一次 for (int i = 0; i < dt.Rows.Count; i++) { IsTBProductForStockInfo model = new IsTBProductForStockInfo(); model.SyncSkuCode = dt.Rows[i]["SyncSkuCode"].ToString(); model.SkuId = dt.Rows[i]["SkuId"].ToString(); info.Add(m…
-- ============================================= -- Author: jf_ou -- Create date: 2016/03/22 -- Description: 插相关配置到配置表 -- eg: -- EXEC AddSysParametersForProjects 'father', 'son', '123, 1234, 12345, 123456', ',' -- ====================================…
代码:  SET IDENTITY_INSERT 表名 ON  SET IDENTITY_INSERT 表名 OFF…
//执行DataTable数据导入 public static int UpdateDt(string strConn, DataTable dt) { try { string tablaName = dt.TableName; string strSQL = string.Format(" Select * From {0} Where 1=2 ", tablaName); ; using (SqlConnection con = GetConnection(strConn)) {…
示例1,for用法: begin for i in 1...10000 loop insert into test values(i,i,'aaa',sysdate); if i mod 20 = 0 then commit; endif; end loop; commit; end; 示例2,while用法: declare count int default 1: begin while  count <= 10000 loop insert into test values(count);…
使用场景 在项目中,涉及到数据库表变更时,可能会需要将一个或多个表中的数据迁移到另一个表中. 这时用sql去执行会很方便! sql语句 //SQL批量插入 create table #ttableName(id int identity(1,1),customerid int,grade int,popularity int) declare @n int,@rows int declare @e int, @g int,@p int insert #ttableName(customerid,…
#region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// <param name="sourceDataTable">数据源表</param> /// <param name="targetTableName">服务器上目标表</param> /// <param nam…
import ibm_db import random import time first_names = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏' \ '陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍' \ '史唐费廉岑薛雷贺倪汤滕殷罗毕安常乐于时傅皮卞齐康伍余元顾孟黄穆萧尹' \ '姚邵湛汪祁毛狄米贝明臧计伏成戴谈宋庞熊纪舒屈项祝董梁杜阮蓝闵季贾路娄' \ '危江童颜郭梅林刁钟徐邱骆高夏蔡田樊胡凌霍虞万柯管卢莫房缪干解丁宣邓郁单' \ '洪包诸左石崔…
由于之前面试中经常被问到有关EF的数据批量插入问题,今天以Sqlserver数据库为例,对.net中处理数据批量处理的方案进行了测试对比. 1.四种测试方案 (1)普通的EF数据批量插入:即调用DbSet中的Addrange方法 (2)不进行上下文跟踪的EF数据批量插入:即关闭自调用的DetectChanges方法,不对每一个添加的实体进行扫描 (3)在EF中执行sql批量插入 (4)Ado.net执行sql批量插入 (5)利用sqlserver的Bcp功能作批量插入:代码中利用了SqlBulk…
通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk insert T_Demo From 'D:\2.txt' With ( fieldterminator=',', rowterminator='\n' ) 1) bulk insert:  为Sql server 中一个批量插入的操作 2)T_Demo:   要插入的表 3)'D:\2.txt':  …
前几天在SQL Server 2008同步产品数据时,总是提示二进制文本被截断的错误,但是经过检查发现数据都符合格式要求. 百思不得其解,单独插入一条条数据则可以插入,但是批量导入则报错. 批量导入代码示例如下: SELECT * into #product from 一系列的表关联 where 若干条件 ... insert into t_product select * from #product 最后无奈之下改为用游标循环插入: ---使用游标测试插入过程  DECLARE Prod_Cu…
Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置. (3)collection:根据传入的参数值确定. (4)open:表示该语句以什么开始. (5)separator:表示在每次进行迭代之间以什么符号作为分隔 符. (6)close:表示以什么结束. 首先,错误的xml配置文件如下: <insert id="save" da…
Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.NodeDataEntity" databaseId="oracle"> insert into "NODE_DATA" ( "NODE_ID", "DATA_TIME", "DATA_VALUE"…
最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束 错误的写法如下 <insert id="insertExpenseItem" parameterTyp…
sql server sqlbulkcopy 批量数据插入数据库使用的是System.Data.SqlClient中的 SqlBulkCopy批量数据插入数据库 sql server 使用SqlBulkCopy批量插入数据库 SqlBulkCopy位于位于命名空间System.Data.SqlClient下,主要功能是把其他数据源(数据行DataRow,数据表DataTable,数据读取器IDataReader等)的数据有效批量的导入到SQL Server表中的功能.类似与 Microsoft…
打印sql语句: $model->find()->createCommand()->getRawSql(); 批量插入 Yii::$app->db->createCommand()->batchInsert(UserModel::tableName(), ['user_id','username'], [ ['1','test1'], ['2','test2'], ['3','test3'], ])->execute();…
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍 SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). 运行下面的脚本,建立测试数据库和表值参数. --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table C…