exec(' master..xp_cmdshell ''bcp " SELECT * FROM xgzx.dbo.zxj where '+条件+' " queryout "d:\1.xls" -c -q -S(local) -Usa -P''')

解决方案 »

  1.   

    不太明白,我是想写一个存储过程
    create proc excel
    (@sql char(100))
    as
    declare @s=........+@sql (这句怎么写都有语法错误,引号还多,不知道怎么处理)
    exec(@s)
      

  2.   

    写错了一点
    create proc excel
    (@sql char(100))
    as
    declare @s nvarchar(200)
    @s=........+@sql (这句怎么写都有语法错误,引号还多,不知道怎么处理)
    exec(@s)
      

  3.   

    create proc excel
    (@sql char(100))
    as
    declare @s nvarchar(200)
    @s=........+@sql (这句怎么写都有语法错误,引号还多,不知道怎么处理)
    exec(' master..xp_cmdshell ''bcp "  '+@s+' " queryout "d:\1.xls" -c -q -S(local) -Usa -P''')
      

  4.   

    zlp321002(永远泡不到妞) 不行啊,程序运行的时候总是出错,说有未闭合的引号
    帮我看看好吗?
    ALTER  proc dkOut
    (@sql char(100))
    as
    exec('master..xp_cmdshell "bcp "SELECT * FROM xgzx.dbo.zxj D'+@sql+'"  queryout d:\1.xls -c -q -S"lyqh" -Usa -P"xgzx"')传进来的参数是字符串 where D.sid='A321'
    是不是里面的单引号的问题?
      

  5.   

    --try
    declare @sql char(100)
    set @sql='where D.sid=''''A321'''' '
    exec('EXEC master..xp_cmdshell ''bcp "SELECT * FROM xgzx.dbo.zxj D '+@sql+' " queryout "d:\1.xls" -c -q -S"yqh" -Usa -P'xgzx'')
      

  6.   

    还是不行,你可不可以告诉我哪一句和那一句是在同一层的?因为我对这条T-Sql语句本身并不清楚
    个人认为是这样的:
    exec master..xp_cmdshell '句1'
    句1:bcp "句2"  queryout d:\1.xls -c -q -Slyqh -Usa -Pxx  
    句2:select语句
    是这样的吗?
    单双引号没有问题吧
      

  7.   

    --在本地运行declare @sql varchar(200)
    set @sql=' where au_fname like ''''%A%'''' '
    exec('EXEC master..xp_cmdshell ''bcp " SELECT au_fname, au_lname FROM pubs..authors    '+@sql+'  ORDER BY au_lname " queryout "d:\authors.xls" -c -q -S(local) -Usa -P''')
      

  8.   

    "bcp  这个是双引号?第 1 行: ' queryout ' 附近有语法错误。晕死
    我这样写
    set @sql=''
    也是一样的错误