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)FileName后面要有个空格
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
然后,这个提示信息,貌似是因为你没有权限,你可以给文件夹C:\Test\对everyone授权