sql如何用string连接成exec的@sqlstr语句?

我想要执行下面的代码,
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
但是总是报错,请高手帮帮忙!

@num是int参数啦,你加完之后转换成varchar拼接到一起就可以了。否则会报错你的sql语句有语法错误的。

你可以再exec之前先print,把print出来的结果在查询分析器中打印出来,如果能执行之后再用exec。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-22
报什么错误?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网