海量数据中重复数据的SQLSERVER插入失败的寻找办法
2015-06-24 23:55
274 查看
海量数据中重复数据的SQLSERVER插入失败的寻找办法:
海量重复数据的SQLSERVER插入失败的寻找办法:
>sqlcmd -E -i c:\bbb.sql -d FY_ERPHH -b >11.txt bbb.sql为写着insert的脚本
SSMS TOOLS 选中表生成到文件的数据(SSMS Tools ->Generate Insert Statements),稍加改造,改造成INSERT into 语句,
插入50行为一标志,循环执行,直至插入完成,通过
>sqlcmd -E -i c:\bbb.sql -d FY_ERPHH -b >11.txt bbb.sql为写着insert的脚本 11.txt为记录文件
插入,并出错后停止执行,再逐步插入,直至发现重复的数据。
其实还有更好的方法,就是去除重复数据直接插入
/////////////////////
另ORACLE是区分大小写的,distinct 也是区分的,而SQLSERVER,某些情况下默认是不区分
所以某些情况下在ORACLE里某表是唯一的,但是在SQLSERVER却是不唯一的。
SQLSERVER通过如下语句进行更改:
ALTER DATABASE DBNAME COLLATE Chinese_PRC_CI_AS
Chinese_PRC_CS_AS
bbb.sql 文件你内容类似:
BEGIN TRANSACTION;
INSERT INTO [dbo].[xtm12](xtwpdm,xtwpmc,xtpzgg ,xtysmc,xtwpxh,xtxhlx,xtxhxh,xttxhm,kcjldw,wpxsdj,xtwplj,xttybz,sccplb,wpsxlb1,wpsxlb2,wpsxlb3,wpsxlb4,wpsxlb5,wpsxlb6,wpsxlb7,wpsxlb8,wpsxlb9,wpsxlb10,wpsxlb11,wpsxlb12,wpsxlb13,wpsxlb14,wpsxlb15,wpsxlb16,wpsxlb17,wpsxlb18,wpsxlb19,wpsxlb20,xtwpks,xtwpys,wpzbdm,xtyszb,wpsxlb21,wpsxlb22,wpsxlb23,wpsxlb24,wpsxlb25,wpsxlb26,wpsxlb27,wpsxlb28,wpsxlb29,wpsxlb30,wpsxlb31,wpsxlb32,wpsxlb33,wpsxlb34,wpsxlb35,wpsxlb36,wpsxlb37,wpsxlb38,wpsxlb39,wpsxlb40,xtwphw,xttmlx,xtwldm,wpghjg,xtdywp)
SELECT N'61101112113408', N'精纺圆领翻花男套衫', N'134', N'玫瑰红', N'130cm', N'02', N'208', N'61101112113408', N'JIAN', 0, N' ', N'N', N'NULL', N'8180518', N'F111017', N'2011', N'2011秋', N'0501', N' ',
N'80S/4', N'16G', N' ', N' ', N'缺省', N'12001', N'男', N'14001', N'1501', N'16001', N'东昌', N'1801', N'1901', N'20001', N'61101112113408', N'61101112113408134', N'8888', N'02', N'21001', N'通配系列', N'23001', N'套衫', N'2501', N'圆领', N'套衫', N'集团
', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N'1', N'00', 0, N' ' UNION ALL
SELECT N'61101112934401', N'精纺圆领印花男套衫', N'344', N'深紫红', N'95cm', N'02', N'201', N'61101112934401', N'JIAN', 0, N' ', N'N', N'NULL', N'8180561', N'F111100', N'2011', N'2011秋', N'0501', N' ', N'80S/4',
N'16G', N' ', N' ', N'缺省', N'12001', N'男', N'14001', N'1501', N'16001', N'东马', N'1801', N'1901', N'20001', N'61101112934401', N'61101112934401344', N'8888', N'02', N'21001', N'时尚系列', N'23001', N'套衫', N'2501', N'圆领', N'套衫', N'集团
', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N'1', N'00', 0, N' '
COMMIT;
RAISERROR (N'[dbo].[YHJ_AA]: Insert Batch: 1.....Done!', 10, 1) WITH NOWAIT;
GO
海量重复数据的SQLSERVER插入失败的寻找办法:
>sqlcmd -E -i c:\bbb.sql -d FY_ERPHH -b >11.txt bbb.sql为写着insert的脚本
SSMS TOOLS 选中表生成到文件的数据(SSMS Tools ->Generate Insert Statements),稍加改造,改造成INSERT into 语句,
插入50行为一标志,循环执行,直至插入完成,通过
>sqlcmd -E -i c:\bbb.sql -d FY_ERPHH -b >11.txt bbb.sql为写着insert的脚本 11.txt为记录文件
插入,并出错后停止执行,再逐步插入,直至发现重复的数据。
其实还有更好的方法,就是去除重复数据直接插入
/////////////////////
另ORACLE是区分大小写的,distinct 也是区分的,而SQLSERVER,某些情况下默认是不区分
所以某些情况下在ORACLE里某表是唯一的,但是在SQLSERVER却是不唯一的。
SQLSERVER通过如下语句进行更改:
ALTER DATABASE DBNAME COLLATE Chinese_PRC_CI_AS
Chinese_PRC_CS_AS
bbb.sql 文件你内容类似:
BEGIN TRANSACTION;
INSERT INTO [dbo].[xtm12](xtwpdm,xtwpmc,xtpzgg ,xtysmc,xtwpxh,xtxhlx,xtxhxh,xttxhm,kcjldw,wpxsdj,xtwplj,xttybz,sccplb,wpsxlb1,wpsxlb2,wpsxlb3,wpsxlb4,wpsxlb5,wpsxlb6,wpsxlb7,wpsxlb8,wpsxlb9,wpsxlb10,wpsxlb11,wpsxlb12,wpsxlb13,wpsxlb14,wpsxlb15,wpsxlb16,wpsxlb17,wpsxlb18,wpsxlb19,wpsxlb20,xtwpks,xtwpys,wpzbdm,xtyszb,wpsxlb21,wpsxlb22,wpsxlb23,wpsxlb24,wpsxlb25,wpsxlb26,wpsxlb27,wpsxlb28,wpsxlb29,wpsxlb30,wpsxlb31,wpsxlb32,wpsxlb33,wpsxlb34,wpsxlb35,wpsxlb36,wpsxlb37,wpsxlb38,wpsxlb39,wpsxlb40,xtwphw,xttmlx,xtwldm,wpghjg,xtdywp)
SELECT N'61101112113408', N'精纺圆领翻花男套衫', N'134', N'玫瑰红', N'130cm', N'02', N'208', N'61101112113408', N'JIAN', 0, N' ', N'N', N'NULL', N'8180518', N'F111017', N'2011', N'2011秋', N'0501', N' ',
N'80S/4', N'16G', N' ', N' ', N'缺省', N'12001', N'男', N'14001', N'1501', N'16001', N'东昌', N'1801', N'1901', N'20001', N'61101112113408', N'61101112113408134', N'8888', N'02', N'21001', N'通配系列', N'23001', N'套衫', N'2501', N'圆领', N'套衫', N'集团
', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N'1', N'00', 0, N' ' UNION ALL
SELECT N'61101112934401', N'精纺圆领印花男套衫', N'344', N'深紫红', N'95cm', N'02', N'201', N'61101112934401', N'JIAN', 0, N' ', N'N', N'NULL', N'8180561', N'F111100', N'2011', N'2011秋', N'0501', N' ', N'80S/4',
N'16G', N' ', N' ', N'缺省', N'12001', N'男', N'14001', N'1501', N'16001', N'东马', N'1801', N'1901', N'20001', N'61101112934401', N'61101112934401344', N'8888', N'02', N'21001', N'时尚系列', N'23001', N'套衫', N'2501', N'圆领', N'套衫', N'集团
', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N' ', N'1', N'00', 0, N' '
COMMIT;
RAISERROR (N'[dbo].[YHJ_AA]: Insert Batch: 1.....Done!', 10, 1) WITH NOWAIT;
GO
相关文章推荐
- mysql index部分错误
- 新手Oracle安装及使用入门
- MySQL存储过程详解 mysql 存储过程
- 监控redis数据库应用状态:python,tornado实现
- 输入值/表单提交参数过滤有效防止sql注入的方法
- SQLServer数据库导入.mdf文件报错解决问题
- MySql修改密码
- oracle自定义异常
- GlusterFS + lagstash + elasticsearch + kibana 3 + redis日志收集存储系统部署 01
- 基本的Sql编写注意事项
- DayDayUP_Linux运维学习_mysql安装(源码编译安装)
- mongodb维护常用命令
- pdo链接数据库的三种方式
- MySQL my.cnf参数配置优化详解
- MyBatis数据持久化(八)sql复用
- MyBatis数据持久化(八)sql复用
- MyBatis数据持久化(八)sql复用
- Sqlite 帮助类 SQLiteHelper
- oracle 用户锁定及到期
- Redis 学习笔记五 常用php函数