sqlserver小批量导数据
GO
/****** Object: StoredProcedure [dbo].[proc_insert] Script Date: 01/09/2015 18:44:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[proc_insert] (@tablename varchar(256))
as
begin
set nocount on
declare @sqlstr varchar(4000)
declare @sqlstr1 varchar(4000)
declare @sqlstr2 varchar(4000)
select @sqlstr='select ''insert '+@tablename
select @sqlstr1=''
select @sqlstr2=' ('
select @sqlstr1= ' values ( ''+'
select @sqlstr1=@sqlstr1+col+'+'',''+' ,@sqlstr2=@sqlstr2+name +',' from (select case
-- when a.xtype =173 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+
a.name +')'+' end' when a.xtype =104 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(1),'+
a.name +')'+' end' when a.xtype =175 then 'case when '+
a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+
a.name+','''''''','''''''''''')' + '+'''''''''+' end' when a.xtype =61 then 'case when '+
a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+
a.name +',121)'+ '+'''''''''+' end' when a.xtype =106 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+
a.name +')'+' end' when a.xtype =62 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+
a.name +',2)'+' end' when a.xtype =56 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(11),'+
a.name +')'+' end' when a.xtype =60 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+
a.name +')'+' end' when a.xtype =239 then 'case when '+
a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+
a.name+','''''''','''''''''''')' + '+'''''''''+' end' when a.xtype =108 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.xprec+2)+'),'+
a.name +')'+' end' when a.xtype =231 then 'case when '+
a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+
a.name+','''''''','''''''''''')' + '+'''''''''+' end' when a.xtype =59 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(23),'+
a.name +',2)'+' end' when a.xtype =58 then 'case when '+
a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(23),'+
a.name +',121)'+ '+'''''''''+' end' when a.xtype =52 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(12),'+
a.name +')'+' end' when a.xtype =122 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(22),'+
a.name +')'+' end' when a.xtype =48 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar(6),'+
a.name +')'+' end' when a.xtype =36 then 'case when '+
a.name+' is null then ''NULL'' else '+'''''''''+'+'convert(varchar(36),'+
a.name +')'+'+'''''''''+' end' -- when a.xtype =165 then 'case when '+
a.name+' is null then ''NULL'' else '+'convert(varchar('+convert(varchar(4),a.length*2+2)+'),'+
a.name +')'+' end' when a.xtype =167 then 'case when '+
a.name+' is null then ''NULL'' else '+'''''''''+'+'replace('+
a.name+','''''''','''''''''''')' + '+'''''''''+' end' else '''NULL'''
end as col,a.colid,
a.name from syscolumns a where
a.id = object_id(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 --and a.xtype <>36 )t order by colid
select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename
print @sqlstr
exec( @sqlstr)
set nocount off
end
sqlserver小批量导数据的更多相关文章
- sqlserver存储过程批量插入数据
在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...
- 利用DataTable快速批量导数据
DataSet ds = new DataSet(); using (SqlConnection conn = new SqlConnection(@"data sou ...
- C#批量插入数据到Sqlserver中的四种方式
我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...
- C#批量插入数据到Sqlserver中的三种方式
本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生 成 ...
- 【转载】C#批量插入数据到Sqlserver中的三种方式
引用:https://m.jb51.net/show/99543 这篇文章主要为大家详细介绍了C#批量插入数据到Sqlserver中的三种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本篇, ...
- sqlserver 中批量删除\r\n 换行符
从Excel中向sqlserver 中批量粘贴数据时 可能会粘贴进去换行符 \r\n 这时候在查询时候是看不见的 只有把该字段赋值到‘’中才能发现换行. 批量替换语句: update [表名]set ...
- SQLServer使用表值参数,高性能批量插入数据
记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库. 今天又接到同事类似的需求,不过这 ...
- SqlServer 利用游标批量更新数据
SqlServer 利用游标批量更新数据 Intro 游标在有时候会很有用,在更新一部分不多的数据时,可以很方便的更新数据,不需要再写一个小工具来做了,直接写 SQL 就可以了 Sample 下面来看 ...
- 自由导入你的增量数据-根据条件将sqlserver表批量生成INSERT语句的存储过程实施笔记
文章标题: 自由导入你的增量数据-根据条件将sqlserver表批量生成INSERT语句的存储过程增强版 关键字 : mssql-scripter,SQL Server 文章分类: 技术分享 创建时间 ...
随机推荐
- 关于讯飞语音SDK开发学习
前奏,浑浑噩噩已经工作一年多,这一年多收获还是挺多的.逛园子应该有两年多了,工作后基本上是天天都会来园子逛逛,园子 里还是有很多牛人写了一些不错的博客,帮我解决很多问题.但是一直没写过博客,归根到底一 ...
- SQL Server 学习系列之六
SQL Server 学习系列之六 SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL 关键字) SQ ...
- nodejs渲染到页面的理解
一般逻辑都是: 打开页面,前端发请求到服务端,服务端返回数据到前端,前端根据数据生成DOM节点,然后append到DOM中. 如果是nodejs渲染到页面,我的理解是: 打开页面,服务端直接把数据查询 ...
- Kerberos的启动和关闭
Kerberos概念 1.Kerberos用户 Kerberos的本质是维护一套自己的用户:或者说是核心用户映射,比如你的系统用户里面有hdfs,那么我将会在KDC中创建一套基于机器(假设我们有三台安 ...
- 解决docker 下来镜像出现 error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net的问题
http://f2d6cb40.m.daocloud.io [root@node2 ~]# docker --version ...
- FPGA的年龄
FPGA的年龄 1984年,Xilinx公司发布了第一个FPGA(但直到1985年这些器件才真正发货).尽管这些器件比当时那些简单的可编程逻辑器件(PLD)复杂的多,但大多数数字设计工程师却仅仅用这些 ...
- hihoCoder#1068(RMQ-ST算法)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在美国旅行了相当长的一段时间之后,终于准备要回国啦!而在回国之前,他们准备去超市采购一些当地特产——比如汉堡 ...
- java流类共享篇
总结: package com.aini; import java.io.*; import java.util.StringBuffere; public class tyt { public st ...
- UE4材质初探
转自:http://www.unrealchina.net/portal.php?mod=view&aid=233 UE4的材质表面上看起来很简单,可是到了用的时候却总是没有办法实现好的效果. ...
- 为什么每个浏览器都有Mozilla字样
你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样?Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ( ...