怎么使用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