create table #table(id int identity,txt varchar(1000))
insert into #table(txt) exec master..xp_cmdshell 'dir c:\*.'
select * from #table

解决方案 »

  1.   

    写错了,是:execute immediate "exec master..xp_cmdshell 'dir c:\'"
    执行成功,返回sqlcode值为0。
    不过我估计你要得到c:目录的内容:create table #T(content varchar(1000))
    insert into #T exec master..xp_cmdshell 'dir c:\'
    select * from #t
      

  2.   

    参考 sql server的帮助,很详细 。
    keyword:
    xp_cmdshell
      

  3.   

    我在运行
    create table #T(content varchar(1000))
    insert into #T exec master..xp_cmdshell 'dir c:\'
    select * from #t时,总是中间那步出问题,不知道是怎么回事,谢谢。
      

  4.   

    执行的结果是把SQL服务器的C:根目录显示出列表。
      

  5.   

    DECLARE @cmd sysname, @var sysname
    SET @var = 'dir /p'
    SET @cmd = 'echo ' + @var + ' > dir_out.txt'
    EXEC master..xp_cmdshell @cmd
      

  6.   

    SELECT  *  FROM  OPENROWSET('MSDASQL.1','Driver={Microsoft  Text  Driver  (*.txt;  *.csv)};Dbq=c:\.....','select  *  from  dir_out.txt')
      

  7.   

    我是想把execute immediate "master.dbo.xp_cmshell 'dir c:\'"返回的值(就是c盘下的文件目录),附值是为变量a,该怎么做呀,谢谢。
      

  8.   

    ?还问啊,把这个做成存储过程,
    create table #T(content varchar(1000))
    insert into #T exec master..xp_cmdshell 'dir c:\'
    select * from #t
    然后建以这个存储过程为数据源的数据窗口,在数据窗口中就可以得到服务器C:根目录下的东西。数据窗口取值就简单了吧?
      

  9.   

    我在做insert into #T exec master..xp_cmdshell 'dir c:\'这步时总是不成功,不知道是为什么。
      

  10.   

    表名为aaa,我是sa登陆的。
    insert into aaa exec master..xp_cmdshell 'dir c:\';
      

  11.   

    aaa为表名,bbb为列名。
    SQLCA.AutoCommit = True
    insert into aaa(bbb) EXECUTE master..xp_cmdshell 'dir c:\';
    connect using sqlca;
    messagebox("",sqlca.sqlcode)测试发现,insert into可以实现,可是插入的是空行。
      

  12.   

    EXECUTE master..xp_cmdshell 'dir c:\' 是错得,必须要先定义存储过程
    才可以调用。1、先在 SQL SERVER 中建一存储过程
    CREATE PROC TEST
    AS
    insert into aaa(bbb) EXECUTE master..xp_cmdshell 'dir c:\'2、在PB中定义
     DECLARE TEST PROCEDURE FOR TEST
             USING sqlca ;
    execute TEST;messagebox("",sqlca.sqlcode)
      

  13.   

    create proc proc_dir
    as
    begin
      create table #table(id int identity,txt varchar(1000))
      insert into #table(txt) exec master..xp_cmdshell 'dir c:\*.'
      select * from #table
    end
    go
    proc_dir调用存储过程
    proc_dir