2

我正在尝试将 ms sql server 2008 中存在的表导出到我系统上的文本文件中。我正在 sql server 查询窗口中编写以下命令

SELECT *
FROM [AdventureWorks].[Person].[AddressType] 
INTO OUTFILE 'C:/filename.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

现在每当我写这个命令时,sql帮助都会给我错误incorrect syntax near 'INTO'

然后我尝试如下交换关键字

SELECT *
INTO OUTFILE 'C:/filename.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM [AdventureWorks].[Person].[AddressType] ;

现在它给了我错误incorrect syntax near 'C:/filename.csv'

请帮助我解决这个问题。我无法删除这些错误并获得有效的 sql

4

2 回答 2

6

解决问题的方法有很多,在这种情况下,这里有两种解决方案

解决方案 1

  • 右键单击数据库名称 -> 任务 -> 导出数据
  • 选择表作为数据源
  • 选择平面文件目标作为目标
  • 选择一个文件名(任何文件名)
  • 标记“第一个数据行中的列名”(这是可选的)

就是这样。

解决方案 2

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  
于 2013-07-22T07:24:53.353 回答
1

解决错误“SQL Server 阻止访问组件 'xp_cmdshell' 的过程 'sys.xp_cmdshell' 因为该组件已作为该服务器安全配置的一部分而关闭。” 首先这样做。

-- 允许更改高级选项。EXEC sp_configure '显示高级选项', 1; GO——更新高级选项的当前配置值。重新配置;GO——启用该功能。执行 sp_configure 'xp_cmdshell', 1; GO -- 更新此功能的当前配置值。重新配置;去

更多信息在这里:http: //msdn.microsoft.com/en-us/library/ms190693.aspx

于 2014-10-30T13:41:17.983 回答