ft 你将查询结果输出到文本文件了阿!
如果你想直接输出用
CREATE PROCEDURE sp_zhuanchu @table varchar(20),@ymd varchar(20) AS
declare @sql varchar(50)
declare @command varchar(100)
set @sql="select * from hos_union.."+@table+"  where ymd>='"+@ymd+"'"
exec(@sql)

解决方案 »

  1.   

    exec( 'exec  master..xp_cmdshell ' + @command )
      

  2.   

    xp_cmdshell我没有用过,不知道它的问题。但是我认为你这句是错得。
    set @sql="select * from hos_union.."+@table+"  where ymd>='"+@ymd+"'"
    应该是
    set @sql='select * from hos_union..'+@table+'  where ymd>='''+@ymd+''''
    还有这句
    set @command='bcp '+@sql+' queryout  D:\gdrecv.txt  -c -S r18 -U sa -P 123'
    应该不对的。在queryout 前后应该有双引号的。好久不用这个做复制了。想不起来了。你看一下吧。呵呵
      

  3.   

    set @sql='select * from hos_union..'+@table+'  where ymd>='''+@ymd+''''
      

  4.   

    CREATE PROCEDURE sp_zhuanchu @table varchar(20),@ymd varchar(20) AS
    declare @sql varchar(50)
    declare @command varchar(1000)
    set @sql='"select * from hos_union..'+@table+'  where ymd>='''+@ymd+'''"'
    set @command='bcp '+@sql+' queryout  D:\gdrecv.txt  -c -S r18 -U sa -P 123'
    exec master..xp_cmdshell @command
    GO
      

  5.   

    批量复制程序(bcp)工具。该工具不仅可以用来转储一个数据表;bcp还可以从一个视图而不是从一个表中获得输入。在您指定了作为输入源的视图之后,你可以通过选择适当的过滤子句(WHERE和HAVING)将输出限制为列的子集或者行的子集。 更重要的是,通过使用视图,你可以从多个联合表中导出数据。你唯一不能做的事情就是指定被写入平面文件中的行的顺序,因为视图中不会包括ORDER BY子句,除非你还使用了TOP关键词。 如果你想以特别的顺序生成数据,或者如果你不能预测出所要导出数据的内容,你应该知道,除了视图之外,bcp还支持使用实际的查询。使用查询代替视图或者表所要注意的唯一“须知”是:你必须在bcp命令行的out位置指定queryout。 例如,你可以通过以下代码使用bcp从pubs数据库中生成居住在California的作者列表: bcp "SELECT * FROM pubs..authors WHERE state = 'CA'" queryout c:\CAauthors.txt -c -T -S
      

  6.   

    好像都不行呀,@sql 并没有达到要求
      

  7.   

    CREATE PROCEDURE sp_zhuanchu @table varchar(20),@ymd varchar(20) AS
    declare @command varchar(2000)
    set @command='bcp "select * from hos_union..'+@table+'  where ymd>='''+@ymd+'''" queryout  D:\gdrecv.txt -c -Sr18 -Usa -P123'
    exec master..xp_cmdshell @command
    GO
      

  8.   

    大力哥哥的运行结果是:
    用法:  bcp {dbtable | query} {in | out | queryout | format} datafile
    .......
    null
    是不是搞错了?
      

  9.   

    怪!你到查询分析器:exec master..xp_cmdshell 'bcp "select * from pubs..jobs " queryout  D:\gdrecv.txt -c -Sr18 -Usa -P123'贴出结果,中间不要加任何回车
      

  10.   

    exec master..xp_cmdshell 'bcp pubs..jobs out D:\gdrecv.txt -c -Sr18 -Usa -P123'这是导入