pls try:
CREATE PROCEDURE XC_XMLWriter.MakePriceXML AS--Execute master..xp_cmdshell 'bcp "select * from xuncai.xc.price as PRICE for xml auto" queryout d:\XMLFILES\Params_XML.xml -c -UXC_XMLWriter  -P123456 -Sxuncaiserver'
declare @@business_codea varchar(100)
--set @business_code='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'''set @@business_codea='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'',''TEXT_00003'''
declare @a varchar(8000)
select @a='bcp "select price from xc.services as bbb where service_id in (select service_id from xc.business where charindex(business_code,'+@@business_codea+')>0) for xml auto" queryout d:\bbb.xml -c -UXC_XMLWriter -P123456 -Sxuncaiserver'--print @a
exec master..xp_cmdshell @a
GO

解决方案 »

  1.   

    set @a='bcp "select price from xc.services as bbb where service_id in (select service_id from xc.business where charindex(business_code,'+@business_code+')>0) for xml auto" queryout d:\bbb.xml -c -UXC_XMLWriter -P123456 -Sxuncaiserver'
      

  2.   

    同意: letsflytogether(恨!不能拥有天下所有的财富,然后平分)
      

  3.   

    CREATE PROCEDURE XC_XMLWriter.MakePriceXML AS--Execute master..xp_cmdshell 'bcp "select * from xuncai.xc.price as PRICE for xml auto" queryout d:\XMLFILES\Params_XML.xml -c -UXC_XMLWriter  -P123456 -Sxuncaiserver'
    declare @@business_codea varchar(100)
    --set @business_code='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'''set @@business_codea='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'',''TEXT_00003'''
    declare @a varchar(8000)
    select @a='bcp "select price from xc.services as bbb where service_id in (select service_id from xc.business where charindex(business_code,'''+@@business_codea+''')>0) for xml auto" queryout d:\bbb.xml -c -UXC_XMLWriter -P123456 -Sxuncaiserver'--print @a
    exec master..xp_cmdshell @a
    GO
      

  4.   

    CREATE PROCEDURE XC_XMLWriter.MakePriceXML AS--Execute master..xp_cmdshell 'bcp "select * from xuncai.xc.price as PRICE for xml auto" queryout d:\XMLFILES\Params_XML.xml -c -UXC_XMLWriter  -P123456 -Sxuncaiserver'
    declare @business_codea varchar(100)
    --set @business_code='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'''set @business_codea='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'',''TEXT_00003'''
    declare @a varchar(8000)
    declare @b varchar(4000)
    set @b =  'select price from xc.services as bbb where service_id in (select service_id from xc.business where charindex(business_code,'+@business_codea+')>0) for xml auto'
    set @a='bcp '''+@b+''' queryout d:\bbb.xml -c -UXC_XMLWriter -P123456 -Sxuncaiserver'
    exec master..xp_cmdshell @a
    GO
      

  5.   

    当然错啦,你将要执行的语句打印出来就知道了,改:CREATE PROCEDURE XC_XMLWriter.MakePriceXML
    AS
    --Execute master..xp_cmdshell 'bcp "select * from xuncai.xc.price as PRICE for xml auto" queryout d:\XMLFILES\Params_XML.xml -c -UXC_XMLWriter  -P123456 -Sxuncaiserver'declare @business_codea varchar(100)
    --set @business_code='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'''set @business_codea='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'',''TEXT_00003'''
    declare @a varchar(8000)
    set @a='bcp "select price from xc.services as bbb where service_id in (select service_id from xc.business where business_code in('+@business_codea+')) for xml auto" queryout d:\bbb.xml -c -UXC_XMLWriter -P123456 -Sxuncaiserver'
    exec master..xp_cmdshell @a
    GO
      

  6.   

    或:CREATE PROCEDURE XC_XMLWriter.MakePriceXML AS--Execute master..xp_cmdshell 'bcp "select * from xuncai.xc.price as PRICE for xml auto" queryout d:\XMLFILES\Params_XML.xml -c -UXC_XMLWriter  -P123456 -Sxuncaiserver'
    declare @business_codea varchar(100)
    --set @business_code='''TEXT_00000'',''TEXT_00001'',''TEXT_00002'''set @business_codea='''TEXT_00000,TEXT_00001,TEXT_00002,TEXT_00003'''
    declare @a varchar(8000)
    set @a='bcp "select price from xc.services as bbb where service_id in (select service_id from xc.business where charindex(business_code,'+@business_codea+')>0) for xml auto" queryout d:\bbb.xml -c -UXC_XMLWriter -P123456 -Sxuncaiserver'
    print @a
    exec master..xp_cmdshell @a
    GO