我想要执行下面的代码,
exec master ..xp_cmdshell
'bcp
"
SELECT * FROM
(
SELECT *, ROW_NUMBER() OVER(ORDER BY [时间]) AS RowIndex
FROM wangning868hexun.dbo.和讯博客5 T
) TableIndex
WHERE TableIndex.RowIndex BETWEEN @num + 1 AND @num + 2
"
in d:\123\778899.txt -c -T
’
结果报错,后来我把语句弄成一行就可以了,但是弄成一行太长,想用string连接语句,
declare @sqlstr1 varchar(3000)
string sqlstr="'bcp \"SELECT * FROM(SELECT *, ROW_NUMBER() OVER(ORDER BY [时间]) AS RowIndex" --这里总是报错!
sqlstr=sqlstr + "FROM wangning868hexun.dbo.和讯博客5 ) TableIndex"
sqlstr=sqlstr + "WHERE TableIndex.RowIndex BETWEEN @num + 1 AND @num + 2\"queryout \"d:\\123\\778899.txt" -c -T'"
set @sqlstr1=cast(sqlstr as varchar) --这里也写得有些问题。
exec master.dbo.xp_cmdshell @sqlstr1
但是总是报错,请高手帮帮忙!
你可以再exec之前先print,把print出来的结果在查询分析器中打印出来,如果能执行之后再用exec。