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

dao007 2013-08-22 11:01:36
怎么把select * from user 出来的结果 保存到 D盘下的user.txt文件里,怎么使用sql脚本写,或批处理脚本

...全文
4357 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
CAINIAO123 2013-08-23
  • 打赏
  • 举报
回复
很不错,受教了
Shawn 2013-08-22
  • 打赏
  • 举报
回复
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
KeepSayingNo 2013-08-22
  • 打赏
  • 举报
回复
我可以成功导出啊,请看

KeepSayingNo 2013-08-22
  • 打赏
  • 举报
回复
我可以成功导出啊,请看

Shawn 2013-08-22
  • 打赏
  • 举报
回复
建议楼主,先BAIDU,GOOGLE.查不原因了,再问。 不过,像报的这种错,真不容易断定原因。 http://bbs.csdn.net/topics/330071564
唐诗三百首 2013-08-22
  • 打赏
  • 举报
回复
须先启用xp_cmdshell选项后再用bcp导出..

-- 启用xp_cmdshell选项
exec sp_configure 'xp_cmdshell', 1

reconfigure

-- bcp导出txt
exec master..xp_cmdshell 'bcp "select * from [user]" queryout D:\user.txt -S "[服务器名]" -U "[帐号]" -P "[密码]" -c '
dao007 2013-08-22
  • 打赏
  • 举报
回复
引用 3 楼 hdhai9451 的回复:
导入导出大全: 一、打開另外一個數據庫 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]') --*/
谢谢AndyHan给的这么全的解答,我用bcp导出会出错,提示 消息 15121,级别 16,状态 21,过程 xp_cmdshell,第 1 行 在执行 xp_cmdshell 的过程中出错。调用 'CreateProcess' 失败,错误代码: '5'。 不知道有没有什么办法可以解决这个呢
dao007 2013-08-22
  • 打赏
  • 举报
回复
引用 2 楼 dotnetstudio 的回复:
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了
谢谢dotnetstudio的解答。 我用了你的方法,结果显示 消息 15121,级别 16,状态 21,过程 xp_cmdshell,第 1 行 在执行 xp_cmdshell 的过程中出错。调用 'CreateProcess' 失败,错误代码: '5'。 数据库是sqlserver 2005 ,操作系统是win7
dao007 2013-08-22
  • 打赏
  • 举报
回复
引用 1 楼 wwwwgou 的回复:
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
我用了你的方法,结果显示 消息 15121,级别 16,状态 21,过程 xp_cmdshell,第 1 行 在执行 xp_cmdshell 的过程中出错。调用 'CreateProcess' 失败,错误代码: '5'。 数据库是sqlserver 2005 ,操作系统是win7
Andy__Huang 2013-08-22
  • 打赏
  • 举报
回复
导入导出大全: 一、打開另外一個數據庫 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]') --*/
KeepSayingNo 2013-08-22
  • 打赏
  • 举报
回复
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了
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧