在SQL Server 2008中导出表格

9
  • 如何将 SQL Server 的表导出为单个平面文件?(包括所有数据和第一行作为列名)?
  • 是否有可以执行此操作的查询?
4个回答

13
  1. 右击数据库名称 -> 任务 -> 导出数据
  2. 选择表作为数据源
  3. 选择扁平文件目标作为目标
  4. 选择一个文件名
  5. 勾选“在第一行数据中包含列名”

你知道一个可以执行你所描述的查询吗? - edgarmtze
2
你考虑过使用SSIS吗?否则,你可以按照http://www.dotnetspider.com/forum/253768-Queryout-with-Column-Names.aspx中描述的编写一个存储过程,然后使用“EXEC xp_cmdshell 'bcp“exec [StoredProcedure]”queryout“C:\file.txt”-T -c -t,'”将其提取到文件中。 - pcofre

7
DECLARE  
     @saveas VARCHAR(2048)
    ,@query VARCHAR(2048)
    ,@bcpquery VARCHAR(2048)
    ,@bcpconn VARCHAR(64)
    ,@bcpdelim VARCHAR(2)

SET @query      = 'select * from table1'
SET @saveas     = '\\SERVER1\SHARE1\FOLDER\QueryOutput.txt'
SET @bcpdelim   = '|'
SET @bcpconn    = '-T' -- Trusted
--SET @bcpconn    = '-U <username> -P <password>' -- SQL authentication


SET @bcpquery = 'bcp "' + replace(@query, char(10), '') + '" QUERYOUT "' + @saveas + '" -c -t^' + @bcpdelim + ' ' + @bcpconn + ' -S ' + @@servername
EXEC master..xp_cmdshell @bcpquery  

3

我不确定pcofre的方法是否总是有效的,即使那是通常的方法。我有以下情况,但它失败了。

我想复制一个表格中的列(尝试过整个表格复制和查询方法)的值,以创建多个服务器的脚本。问题在于,该列内容是varbinary类型,而且实际上非常巨大。数据长度达到了19K。这是我使用ColdFusion代码创建并插入的PDF文件的二进制数据。现在DBA需要将数据复制到其他环境中。他不能使用'UPDATE/INSERT FROM ',因为数据被截断。所以他要求我从列中获取二进制值,以便他可以将其放入查询分析器并运行查询。这可能听起来很傻,但无论你做什么都不起作用。所以我做了这个:

  1. your_Database
  2. 生成脚本
  3. 如果有,请选择对象

2
  1. 右键点击SELECT from yourTable查询的结果集。
  2. 选择“另存为...”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接