EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 1374|回复: 28
打印 上一主题 下一主题

[SQL语言] SQL语句导入导出大全

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12406

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-9 15:36:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

   <Customer Cid="C2" Name="Ursula" City="Oelde" >
      <Order Oid="O3" Date="7/14/1999" Amount="100" Note="Wrap It Blue
             White Red">
            <Urgency>Important</Urgency>
            Happy Customer.
      </Order>
      <Order Oid="O4" Date="1/20/1996" Amount="10000"/>
   </Customer>
</Root>
'
-- Create An Internal Representation Of The XML Document.
EXEC Sp_xml_preparedocument @Idoc OUTPUT, @Doc
-- Execute A SELECT Statement Using OPENXML Rowset Provider.
SELECT *
FROM OPENXML (@Idoc, '/Root/Customer/Order', 1)
      WITH (Oid     Char(5),
            Amount  Float,
            Comment Ntext 'Text()')
EXEC Sp_xml_removedocument @Idoc

???????
/**********************Excel导到Txt****************************************/
想用
Select * Into Opendatasource(...) From Opendatasource(...)
实现将一个Excel文件内容导入到一个文本文件
假设Excel中有两列,第一列为姓名,第二列为很行帐号(16位)
且银行帐号导出到文本文件后分两部分,前8位和后8位分开。

邹健:
如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:姓名,银行账号1,银行账号2
然后就可以用下面的语句进行插入
注意文件名和目录根据你的实际情况进行修改.
Insert Into
Opendatasource('MICROSOFT.JET.OLEDB.4.0'
,'Text;HDR=Yes;DATABASE=C:\'
)...[Aa#Txt]
--,Aa#Txt)
--*/
Select 姓名,银行账号1=Left(银行账号,8),银行账号2=Right(银行账号,8)
From
Opendatasource('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=C:\A.Xls'
--,Sheet1$)
)...[Sheet1$]

如果你想直接插入并生成文本文件,就要用Bcp
Declare @Sql Varchar(8000),@Tbname Varchar(50)
--首先将Excel表内容导入到一个全局临时表
Select @Tbname='[##Temp'+Cast(Newid() As Varchar(40))+']'
,@Sql='Select 姓名,银行账号1=Left(银行账号,8),银行账号2=Right(银行账号,8)
Into '+@Tbname+' From
Opendatasource(''MICROSOFT.JET.OLEDB.4.0''
,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=C:\A.Xls''
)...[Sheet1$]'
Exec(@Sql)
--然后用Bcp从全局临时表导出到文本文件
Set @Sql='Bcp "'+@Tbname+'" Out "C:\Aa.Txt" /S"(Local)" /P"" /C'
Exec Master..Xp_cmdshell @Sql
--删除临时表
Exec('Drop Table '+@Tbname)

/********************导整个数据库*********************************************/
用Bcp实现的存储过程

/*
实现数据导入/导出的存储过程
         根据不同的参数,可以实现导入/导出整个数据库/单个表
调用示例:
--导出调用示例
----导出单个表
Exec File2table 'Zj','','','Xzkh_sa..地区资料','C:\Zj.Txt',1
----导出整个数据库
Exec File2table 'Zj','','','Xzkh_sa','C:\Docman',1
--导入调用示例
----导入单个表
Exec File2table 'Zj','','','Xzkh_sa..地区资料','C:\Zj.Txt',0
----导入整个数据库
Exec File2table 'Zj','','','Xzkh_sa','C:\Docman',0
*/
If Exists(Select 1 From Sysobjects Where Name='File2Table' And Objectproperty(Id,'IsProcedure')=1)
Drop Procedure File2Table
Go
Create Procedure File2Table
@Servername Varchar(200)  --服务器名
,@Username Varchar(200)   --用户名,如果用NT验证方式,则为空''
,@Password Varchar(200)   --密码
,@Tbname Varchar(500)   --数据库.Dbo.表名,如果不指定:.Dbo.表名,则导出数据库的所有用户表
,@Filename Varchar(1000)  --导入/导出路径/文件名,如果@Tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.Txt
,@Isout Bit      --1为导出,0为导入
As
Declare @Sql Varchar(8000)
If @Tbname Like '%.%.%' --如果指定了表名,则直接导出单个表
Begin
Set @Sql='Bcp '+@Tbname
  +Case When @Isout=1 Then ' Out ' Else ' In ' End
  +' "'+@Filename+'" /W'
  +' /S '+@Servername
  +Case When Isnull(@Username,'')='' Then '' Else ' /U '+@Username End
  +' /P '+Isnull(@Password,'')
Exec Master..Xp_cmdshell @Sql
End
Else
Begin --导出整个数据库,定义游标,取出所有的用户表
Declare @M_tbname Varchar(250)
If Right(@Filename,1)<>'\' Set @Filename=@Filename+'\'
Set @M_tbname='Declare #Tb Cursor For Select Name From '+@Tbname+'..Sysobjects Where Xtype=''U'''
Exec(@M_tbname)
Open #Tb
Fetch Next From #Tb Into @M_tbname
While @@Fetch_status=0
Begin
  Set @Sql='Bcp '+@Tbname+'..'+@M_tbname
   +Case When @Isout=1 Then ' Out ' Else ' In ' End
   +' "'+@Filename+@M_tbname+'.Txt " /W'
   +' /S '+@Servername
   +Case When Isnull(@Username,'')='' Then '' Else ' /U '+@Username End
   +' /P '+Isnull(@Password,'')
  Exec Master..Xp_cmdshell @Sql
  Fetch Next From #Tb Into @M_tbname
End
Close #Tb
Deallocate #Tb
End
Go

/************* Oracle **************/
EXEC Sp_addlinkedserver 'OracleSvr',
   'Oracle 7.3',
   'MSDAORA',
   'ORCLDB'
GO
Delete From Openquery(Mailser,'Select *  From Yulin')
Select *  From Openquery(Mailser,'Select *  From Yulin')
Update Openquery(Mailser,'Select * From  Yulin Where Id=15')Set Disorder=555,Catago=888
Insert Into Openquery(Mailser,'Select Disorder,Catago From  Yulin')Values(333,777)

补充:
对于用Bcp导出,是没有字段名的.
用Openrowset导出,需要事先建好表.
用Openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

4

主题

846

帖子

1300

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1300
推荐
发表于 2014-2-13 10:35:47 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

找到了我想要的东西 感谢楼主分享 SO娱乐城:真_人.足球.彩票齐全| 开户送10元.首存送58元.手机可投▅注任何游戏顶级信用▅提现即时到账SO.CC

24

主题

898

帖子

3004

积分

BIM总监

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

积分
3004
推荐
发表于 2014-3-12 14:48:50 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

路过!!! 不发表意见…… 皇_冠现_金网:hg88094.com首存送58元.手机可投Ⅵ注任何游戏满1000送1088彩_金Ⅵ体育半场结算六_合48倍Ⅵ各种彩票游戏

12

主题

221

帖子

549

积分

BIM专业负责人

Rank: 4Rank: 4Rank: 4Rank: 4

积分
549

社区QQ达人

推荐
发表于 2014-3-13 14:59:51 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

好强大啊,谢谢哈 皇_冠现_金网:hg88094.com首存送58元.手机可投ヱ注任何游戏满1000送1088彩_金ヱ体育半场结算六_合48倍ヱ各种彩票游戏

22

主题

983

帖子

4033

积分

BIM总监

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

积分
4033
5F
发表于 2014-2-19 15:08:48 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

路过!!! 帮顶…… 皇_冠现_金网:hg88094.com首存送58元.手机可投ヽ注任何游戏满1000送1088彩_金ヽ体育半场结算六_合48倍ヽ各种彩票游戏

0

主题

836

帖子

1198

积分

BIM项目负责人

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

积分
1198
6F
发表于 2014-2-21 14:33:44 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

顶...... 楼下跟上..... SO娱乐城:真_人.足球.彩票齐全| 开户送10元.首存送58元.手机可投⒀注任何游戏顶级信用⒀提现即时到账SO.CC

26

主题

722

帖子

-2205

积分

乞丐

积分
-2205
7F
发表于 2014-3-10 11:54:51 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

顶!!!!!!!!!!!!!!!!!!!!!!!!! 本站强荐:185娱乐﹋城.足球﹋真_人.彩票齐全﹋手机可投﹋注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185.cc

11

主题

869

帖子

1482

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1482
8F
发表于 2014-3-10 12:08:06 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

顶!!!!!!!!!!!!!!!!!!!!!!!!! SO娱乐城:真_人.足球.彩票齐全| 开户送10元.首存送58元.手机可投ホ注任何游戏顶级信用ホ提现即时到账SO.CC

5

主题

851

帖子

1342

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1342
9F
发表于 2014-3-12 14:54:10 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

路过!!! 不发表意见…… 本站强荐:185娱乐χ城.足球χ真_人.彩票齐全χ手机可投χ注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185.cc

31

主题

1019

帖子

1897

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1897
10F
发表于 2014-3-12 15:00:20 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

路过!!! 帮顶…… 皇_冠现_金网:hg88094.com首存送58元.手机可投╫注任何游戏满1000送1088彩_金╫体育半场结算六_合48倍╫各种彩票游戏

7

主题

861

帖子

1418

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1418
11F
发表于 2014-3-12 15:05:09 | 只看该作者
本帖最后由 Aaronyee 于 2015-11-2 19:05 编辑

顶!!!!!!!!!!!!!!!!!!!!!!!!! 皇_冠现_金网:hg88094.com首存送58元.手机可投%注任何游戏满1000送1088彩_金%体育半场结算六_合48倍%各种彩票游戏

5

主题

726

帖子

1692

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1692
12F
发表于 2014-3-12 15:16:05 | 只看该作者
(*^__^*) 嘻嘻……

12

主题

876

帖子

1510

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1510
13F
发表于 2014-3-14 11:41:20 | 只看该作者
顶......
楼下跟上.....
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-27 03:41

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表