sql server 数据导出(入)方法总结
我们都知道日常在面对数据需求时需要导出数据,比较少量的数据导出我们一般是通过查询后另存即可,当面对数据量比较大的时候我们应该怎么处理?
我搜索总结一些几个方法:1、bcp 导出。2、数据库本身自带的导入导出。3、如果更大的话,直接把备份库直接拷贝出来,导出整个库
方法1:(少数量导入和导出)
select *
from aa.dbo.studens
方法二:数据库本身自带的导出:点击数据库(aaa)--任务--导出(入)数据—数据源(选择与源的数据存储格式相匹配的数据访问接口。
可用于数据源的访问接口可能不止一个。 例如,对于sql server可以使用sql servernative client、.net framework 数据提供程序的
sql server 或 microsoft ole db provider for sql server):选择sql server native client or microsoft ole db provider for sql server 。
登录用户名和密码--目标:选择你想存为的文件格式(平面文件目标)--文件名(存放地址:c:\aa.txt)---点击下一步到:源表或源视图(dbo.student)
——行分隔符:选择({cr}{lf})列分隔符(逗号{,})--点下去就行了
注:导入时注意数据类型设置
方法三:bcp导出
--先开启cmdshell
exec sp_configure 'show advanced options', 1
go
reconfigure
go
exec sp_configure 'xp_cmdshell', 1
go
reconfigure
go
--导出指定表的文本文件
exec master..xp_cmdshell 'bcp dbname..tablename out d:\dt.txt -c -sservername -usa -ppassword'
--根据sql语句导出指定表的文本文件
exec master..xp_cmdshell 'bcp "select top 10 * from dbname..tablename" queryout d:\dt.txt -c -sservername -usa -ppassword'
--导出指定表的文本文件,指定分隔符,在-t后设置分隔符
exec master..xp_cmdshell 'bcp dbname..tablename out d:\dt.txt -c -t, -sservername -usa -ppassword'
--导入指定表的文本文件
exec master..xp_cmdshell 'bcp dbname..tablename in d:\dt.txt -c -sservername -usa -ppassword'
注:
1.如果数据表里已有数据,此方法从文本导数据到数据表时,会在后面追加数据,不会先清空表。
2.如果导出时指定过分隔符,导入时用上面的导入方法会报错。解决方法是不要指定分割符
3.此语句在sqlserver里执行时,不能换行,否则报错
推荐阅读
-
sql server 数据导出(入)方法总结
-
C#实现连接SQL Server2012数据库并执行SQL语句的方法
-
SQL Server数据库的高性能优化经验总结
-
将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇
-
SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法
-
卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法
-
sql server中通过查询分析器实现数据库的备份与恢复方法分享
-
C#实现连接SQL Server2012数据库并执行SQL语句的方法
-
SQL Server数据库入门学习总结
-
SQL Server 数据库备份和还原认识和总结(二)