邹版主的关于导入导出的文章http://community.csdn.net/Expert/topic/4662/4662604.xml?temp=.4659235有下面一段代码--检查文件是否已经存在
if right(@path,1)<>'\' set @path=@path+'\'
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql1.我在网上查了才知道xp_fileexist是扩展存储过程,请问我怎么能看见sql server里有哪些扩展存储过程呢?怎么知道他们的功能是什么呢?
2.xp_fileexist的返回值是什么呢?为什么#tb是三列而不是四列呢?
2.我用select * from #tb看了一下结果是(参数 @path='d:\'   @fname='test.xls')
 a   b   c
 1   0   1
请问这是什么意思呢?

解决方案 »

  1.   

    要查询有那些扩展存储过程比较容易, 查master.dbo.sysobjects, 以 xp_ 开头的就是扩展存储过程要知道用法就难了, 只能查资料
      

  2.   

    谢谢老大,我用exec p_exporttb 'select * from SZERP.dbo.productproject','c:\','test','productproject1'调用了您的存储过程 p_exporttb,但是发现那个导出的excel文件只会在数据库服务器c:\盘下面,请问老大,我怎么把excel保存到我的机器上呢?
      

  3.   

    先注册连结服务器,SP_ADDLINKEDSERVER,然后执行如下:
    exec p_exporttb 
    @sqlstr='select * from openrowset(''sqloledb'',''Trusted_Connection=yes'',''exec khyy.hszy.dbo.pr_getemail'')',
    @path=@path,
    @fname=@fname,
    @sheetname='西安'khyy是远程SQL服务器,HSZY是数据库名,在本地执行这个就OK了,@path自己定义本地的