当前位置: 代码迷 >> Sql Server >> 真心论坛大牛,关于BCP导出TXT有关问题
  详细解决方案

真心论坛大牛,关于BCP导出TXT有关问题

热度:69   发布时间:2016-04-24 09:41:16.0
真心求助论坛大牛,关于BCP导出TXT问题
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO

DECLARE  @sqlstr varchar(3000),@name VARCHAR(50),@FileName VARCHAR(50),@TxtOut VARCHAR(3000)
    SET @name = convert(varchar(8),getdate(),112);
Set @FileName = 'C:\Test\'+@name+'.txt'   
Set @sqlstr = '"select description AS 批次名, num AS 数量,CREATEDDATE AS 入仓时间 FROM IVAN.DBO.CUSTOMERLISTWHERE LISTNAME NOT LIKE ''%R%'' and CREATEDDATE BETWEEN '  + ''''+ CONVERT(VARCHAR(11),GETDATE()-30,121) + '00:00:00'  + ''''+  ' AND '  + ''''+  CONVERT(VARCHAR(11),GETDATE()-10,121) + '23:59:59'  + '''"' 
Set @TxtOut = 'bcp  ' + @sqlstr + ' queryout ' + @FileName + '-c -S"(local)" -U"sa" -P"123456"' 
EXEC master..xp_cmdshell  @TxtOut

------解决思路----------------------
DECLARE  @sqlstr varchar(3000),@name VARCHAR(50),@FileName VARCHAR(50),@TxtOut VARCHAR(3000)
    SET @name = convert(varchar(8),getdate(),112);
Set @FileName = 'C:\Test\'+@name+'.txt'   
Set @sqlstr = '"select description AS 批次名, num AS 数量,CREATEDDATE AS 入仓时间 FROM IVAN.DBO.CUSTOMERLISTWHERE LISTNAME NOT LIKE ''%R%'' and CREATEDDATE BETWEEN '''+ CONVERT(VARCHAR(11),GETDATE()-30,121) + '00:00:00'' AND '''+  CONVERT(VARCHAR(11),GETDATE()-10,121) + '23:59:59''"'    
Set @TxtOut = 'bcp  ' + @sqlstr + ' queryout ' + @FileName + ' -c -S"(local)" -U"sa" -P"123456"' 
PRINT @TxtOut
EXEC master..xp_cmdshell @TxtOut
FileName后面要有个空格

然后,这个提示信息,貌似是因为你没有权限,你可以给文件夹C:\Test\对everyone授权
  相关解决方案