问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库以insert语句形式从表中导出数据

发布网友 发布时间:2022-04-23 01:27

我来回答

5个回答

热心网友 时间:2022-04-10 05:53

既然有人提出用语句实现,那我们就用语句,我把她做成一个存储过程,在环境sql2005下测试通过,有一点说明:表中的字段值不能为空,否则将返回一个空值: 

第一步:--首先创建一张结果表,保存要输出的数据 

create table out_data 

(flag int,--标识 

tb_name varchar(1000),--表名称 

insert_info varchar(8000))--插入的语句 

第二步,创建存储过程: 

create proc [dbo].[out_table_data] 

@tb_name varchar(1000)--表名称 

as 

declare @str varchar(8000),--存放字段名称 

@insert_str varchar(8000),--存放处理结果串 

@bl varchar(8000),--存放变量及其数据类型 

@bl2 varchar(8000),--存放变量名称 

@bl3 varchar(8000),--数据类型 

@bd varchar(1000),--引号使用开始 

@bd2 varchar(1000),--引号使用结束 

@sum_str varchar(8000),--存放赋值变量和字段 

@sum_str_column varchar(8000),--存放要提取的变量字段 

@j varchar(3000),--字段个数 

@i varchar(3000)--循环起始量 

set @str='' 

set @bl='declare '--声明变量(保留中间的空格) 

set @bl2='' 

set @bl3='' 

set @i=1 

set @sum_str='' 

set @sum_str_column='' 

set @bd='''''''+' 

set @bd2='+''''''' 

--字段个数 

select @j=count(a.[name]) from syscolumns A inner join sysobjects B 

on A.id = B.id and b.name = @tb_name 

--自动定义变量放入串@bl中(case when c.[name] in('char','nchar','varchar','nvarchar') then '('+convert(varchar(500),a.length)+')' else '' end) 

select @bl=@bl+'@'+a.[name]+' '+'varchar(8000)'+',' ,@bl3=@bl3+c.[name]+',' from syscolumns A inner join sysobjects B on A.id = B.id 

inner join systypes c 

on A.xtype=C.xusertype 

and b.name = @tb_name 

set @bl=left(@bl,len(@bl)-1) 

--要查询的表字段名放入串@str中 

select @str=@str+a.[name]+',' ,@bl2=@bl2+'@'+a.[name] from syscolumns A inner join sysobjects B 

on A.id = B.id and b.name = @tb_name 

set @str=left(@str,len(@str)-1) 

set @bl2=@bl2+'@' 

while @i<=@j 

begin 

set @sum_str_column=@sum_str_column+@bd+isnull(left(@bl2,charindex('@',right(@bl2,len(@bl2)-1))),0)+@bd2+',' 

set @sum_str=@sum_str+left(@bl2,charindex('@',right(@bl2,len(@bl2)-1)))+'='+left(right(@bl2,len(@bl2)-1),charindex('@',right(@bl2,len(@bl2)-1))-1)+',' 

set @bl2 = right(@bl2,len(@bl2)-charindex('@',right(@bl2,len(@bl2)-1))) 

set @bl3=right(@bl3,len(@bl3)-charindex(',',@bl3)) 

set @i=@i+1 

end 

set @sum_str=left(@sum_str,len(@sum_str)-1) 

set @sum_str_column=left(@sum_str_column,len(@sum_str_column)-1) 

--执行处理过程,在临时表中进行 

set @insert_str=' '+@bl+' 

declare @max int,@min int 

select identity(int,1,1) flag,'+@str+' into #tmp from '+@tb_name+' 

select @min=min(flag),@max=max(flag) from #tmp 

while @min<=@max 

begin 

select '+@sum_str+' from #tmp where flag=@min 

insert into out_data(flag,tb_name,insert_info) 

select @min [id],'''+@tb_name+''' tb_name,''insert into '+@tb_name+''+'('+@str+') values('+@sum_str_column+')'' names 

set @min=@min+1 

end' 

exec(@insert_str) 

--print @insert_str 

第三步、获取你要的结果信息,如要批量,循环该过程就可以了 

exec out_table_data 'net_code' 

返回结果: 

select * from out_data where tb_name like '%net_code%'

热心网友 时间:2022-04-10 07:11

除了用第三方工具外,没有简便的方法,要么自己拼写出相应的语句,比如
select 'insert into a values('''+cast(a1 as varchar(10))+''','''+a2+''')'
from a

在SSMS里执行后的结果集就是你要的结果了。

热心网友 时间:2022-04-10 08:45

对于SQL SERVER 2005 和oracle支持导出脚本
别的不没接触过

热心网友 时间:2022-04-10 10:37

什么数据库,oracle中的PL/sql有的

热心网友 时间:2022-04-10 12:45

bcp导出
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 高德地图如何识别环线是立交上还是立交下 易易分期怎么退款 番茄和金针菇可以一起煮吗 高德地图这两条交叉的线是不是桥上和桥下的路线 怎么才能准时收到微博群聊里的消息? 关于SQL语句中的insert用法 分期易有额度不用会怎么样? 高德地图怎么避开高架桥,过两天去上海。上海好像有什么外牌限行吧 分期易权益费怎么退回来 金针菇牛肉砂锅的家常做法大全怎么做好吃 sql的insert语句 微博群聊天记录清空了怎么办? 高德地图到了有桥的地方怎么分上下层? 西红柿炖牛肉卷的做法大全 我在分期易申请了额度正在评估中,但我现在不想要了该怎么取消啊? 新浪微博的群聊天记录文件(有文档、文字聊天记录,音频,图片等)保存在手机的哪个文件夹下?如何导出? sql语句中的insert 和 insert into 的区别?into有什么用? 番茄金针菇肥牛卷简单易上手的做法有哪几种? 怎么查看分期易app上,我的银行卡 sql语言的INSERT怎么用 寿喜锅是日本特色的火锅,寿喜锅里一般放哪些东西? 分期易资金发放中多久可以到账 请教关于SQL的INSERT语句. 番茄金针菇肥牛怎么做 高德地图怎么预测第二天交通情况 谁知道这个易分期怎么用,怎么使用额度 sql insert语句语法 开胃又解腻的西红柿金针菇汤,是怎样的做法? 分期易上的贷款申请一直审批中,怎么取消申请呢? 高德地图在高架上却显示地面导航怎么切换? 牛肉丸金针菇汤怎么做好吃 JAVA SQL insert 语句写法 梦见自己坐地铁坐过站了是什么意思啊?下站后很迷茫,满头大汗的_百度知 ... 关于SQL insert语句 谢谢! 亲。怎么取消分期易购物账单?急 高德地图不好用啊,今天开车左边是高架桥右边是路,但地图的路线就只是直的,根本不知道该走桥还是走下面 牛肉卷和金针菇怎么炒 梦见坐地铁去终点站? 如何自动生成sql insert语句 怎么对付分期易骚扰电话?