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

用 BCP 导出数据的时候怎么去执行带有变量的语句?!

Hi,
如题,比如有类似语句

EXEC   master..xp_cmdshell   'bcp   "SELECT   *   FROM   employee   where   emp_no   =   @userid "   queryout   "C:\1.txt "   -c   -t   -S "win2ksvr "   -U "lich "   -P "123 " '

当然上面的语句无法运行的
其中   @userid   是一个变量,我希望通过输入不同的数据,导出不同的文件,请问
该怎样来实现呢?谢谢!

------解决方案--------------------
declare @userid int
set @userid = 1

declare @bcp varchar(8000)
set @bcp = 'bcp "SELECT * FROM employee where emp_no = ' + rtrim(@userid) + ' " queryout "C:\ ' + rtrim(@userid) + '.txt " -c -t -S "win2ksvr " -U "lich " -P "123 " '

EXEC master..xp_cmdshell @bcp