首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何使用sql脚本把select出来的内容写到txt文本文件里

2013-10-09 
怎么使用sql脚本把select出来的内容写到txt文本文件里本帖最后由 dao007 于 2013-08-22 11:05:34 编辑怎么

怎么使用sql脚本把select出来的内容写到txt文本文件里
本帖最后由 dao007 于 2013-08-22 11:05:34 编辑 怎么把select * from user 出来的结果 保存到 D盘下的user.txt文件里,怎么使用sql脚本写,或批处理脚本


[解决办法]
BCP导出。

USE CSDN
GO

CREATE TABLE [dbo].[AutoIdentity]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [nvarchar](255) NULL
)
GO

INSERT INTO dbo.[AutoIdentity] (name)
SELECT 'name1' UNION ALL
SELECT 'name2' UNION ALL
SELECT 'name3'
GO

--打开开关
sp_configure 'xp_cmdshell', 1;
go
reconfigure;
GO

--BCP导出1
EXEC master..xp_cmdshell 
'bcp CSDN.dbo.AutoIdentity out c:\currency1.txt -c -U"sa" -P"1q2w3e4R"'
--BCP导出2
EXEC master..xp_cmdshell 
'bcp "select * from CSDN.dbo.AutoIdentity" queryout queryout "c:\currency1.txt" /c -S"实例名" -U"sa" -P"1q2w3e4R"'

go
--关闭开关
sp_configure 'xp_cmdshell', 0;
go
reconfigure;
GO

[解决办法]
EXEC master..xp_cmdshell 'bcp "SELECT * FROM  [table]" queryout "d:\table.txt" -c -t \t -S"127.0.0.1" -U"sa" -P"123456" '


将表名、数据库的IP地址、密码换成你的就OK了
[解决办法]
导入导出大全:


一、打開另外一個數據庫
1.
打開SQL server2000的另一個數據庫的表

(1).  select * from openrowset('sqloledb','sprogram';'develop';'11111','select * from kind')

(2).  select * from openrowset('sqloledb','190.1.1.247';'develop';'11111','select * from kind')

(3).  select * from opendatasource('sqloledb','data source=sprogram;user ID=develop;Password=11111').new_ks.dbo.kind

 
2.
打開Access2000的一個表

(1).  select *  from OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0','Data Source=e:/north.mdb;User ID=Admin;Password=')...supply 

(2).  select * from openrowset('Microsoft.Jet.OLEDB.4.0', 

   'e:/north.mdb';'admin';'',supply)

(3).  select * from openrowset('Microsoft.Jet.OLEDB.4.0', 

   'e:/north.mdb';'admin';'','select * from supply where 供應商編號>10')

 
3.
打開Excel的一個表

(1). select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=e:/test.xls',sheet1$)

(2). select * into 表 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=e:/test1.xls',sheet3$)

 
二、導入與導出
1.      用BCP工具導入導出

(1)xls文件

EXEC master..xp_cmdshell 'bcp "SELECT class_no,kind_no,cn_name FROM new_ks.dbo.kind ORDER BY 1,2" queryout "e:/test3.xls" -c -q -S"sprogram" -U"develop" -P"12345"'

 
(2)/** 导入文本文件
--入SQLServer

select *  into 你的表 from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=c:/temp;','select * from contact.txt')

--查詢導出
EXEC master..xp_cmdshell 'bcp "SELECT class_no,kind_no,cn_name FROM new_ks.dbo.kind ORDER BY 1,2" queryout "e:/TX1.txt" -c -q -S"sprogram" -U"develop" -P"12345"'
--直接导出到txt文件

EXEC master..xp_cmdshell 'bcp DB_MRP.dbo.dept out "e:/TX3.txt" -c -S"GUIDE-1" -U"develop" -P"12345"' 

--直接导出到xls文件
EXEC master..xp_cmdshell 'bcp DB_MRP.dbo.dept out "e:/TX3.xls" -c -S"GUIDE-1" -U"develop" -P"12345"' 

 
--直接導入

EXEC master..xp_cmdshell 'bcp "數據庫.dbo.數據表" in c:/DT.txt -c -S服務器名 -U用戶 -P密碼'

EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:/TX1.txt" -c -q -S -U -P'

EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:/test3.xls" -c -q -S -U -P'

 
--用BULK INSERT導入

BULK INSERT hdh.dbo.kind

FROM 'e:/tx1.txt'

WITH (

    FIELDTERMINATOR = '/t',

    ROWTERMINATOR = '/n'

)

前提條件是表如kind要存在,而且字段與test.txt字段數目要一樣多

在查詢分析器中運行,而且是以sa用戶登錄

 
bulk insert tbyhhk from 'c:/t.txt' with( formatfile='c:/bcp.txt')

 
 


3.其它數據庫的導入方法:
(1)--/* dBase IV文件
select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:/','select * from [客户资料4.dbf]')
--*/
(2)--/* dBase III文件
select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase III;HDR=NO;IMEX=2;DATABASE=C:/','select * from [客户资料3.dbf]')
--*/
(3)--/* FoxPro 数据库
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/',
'select * from [aa.DBF]')
--*/

[解决办法]
建议楼主,先BAIDU,GOOGLE.查不原因了,再问。
不过,像报的这种错,真不容易断定原因。
http://bbs.csdn.net/topics/330071564

热点排行