日期:2014-05-18  浏览次数:20772 次

复杂的语法错误,请教...
SQL code

----'已发行' 附近有语法错误。

declare @FilePath nvarchar(100)
set @FilePath='F:\Temp.xls'
 
exec('EXEC master..xp_cmdshell 
''bcp "select top 10 * from Hitachi.dbo.Files where State='已发行'" 
queryout '+@FilePath+' -c -q -S"172.20.1.236" -U"sa" -P"sQl123+/e"''')


--select 语句加上where条件就出现语法错误,这个bcp后米娜的双引号是不能去掉的,所以就给我弄晕掉了...

--希望有经验的朋友帮忙尝试下,解决一下..





以上非常感谢...

------解决方案--------------------
SQL code
declare @FilePath nvarchar(100)
set @FilePath='F:\Temp.xls'
 
exec('EXEC master..xp_cmdshell 
''bcp "select top 10 * from Hitachi.dbo.Files where State=''已发行''" 
queryout '+@FilePath+' -c -q -S"172.20.1.236" -U"sa" -P"sQl123+/e"''')

------解决方案--------------------
declare @FilePath nvarchar(100)
set @FilePath='F:\Temp.xls'
 
exec('EXEC master..xp_cmdshell 
''bcp "select top 10 * from Hitachi.dbo.Files where State=''已发行''" 
queryout '+@FilePath+' -c -q -S"172.20.1.236" -U"sa" -P"sQl123+/e"''')


------解决方案--------------------
这样?
SQL code
declare @FilePath nvarchar(100)
set @FilePath='F:\Temp.xls'
 
print 'EXEC master..xp_cmdshell 
''bcp "select top 10 * from Hitachi.dbo.Files where State=''已发行''
queryout '+@FilePath+' -c -q -S"172.20.1.236" -U"sa" -P"sQl123+/e"'''

------解决方案--------------------
SQL code
declare @FilePath nvarchar(100)
set @FilePath='F:\Temp.xls'
 
 DECLARE @sql NVARCHAR(2000)
 SET @sql='bcp "select top 10 * from Hitachi.dbo.Files where State=''已发行''" queryout '+@FilePath+' -c -q -S"172.20.1.236" -U"sa" -P"sQl123+/e"'
EXEC master..xp_cmdshell @sql