zjcxc(邹建)這樣寫道:
SQL SERVER数据库可以用下面的存储过程来实现导入/导出:
/*--实现数据导入/导出的存储过程 可以实现导入/导出 指定表 到文本文件邹建 2003.07-----------------*//*--调用示例
导出调用示例
--导出指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为:zj
exec file2table 'zj','','','c:\zj.txt','xzkh_sa..地区资料'导入调用示例
--导入指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为:zj
exec file2table 'zj','','','c:\zj.txt','xzkh_sa..地区资料',0
--*/if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
drop procedure File2Table
gocreate procedure File2Table
@servername varchar(200) --服务器名
,@username varchar(200) --用户名,如果用NT验证方式,则为空''
,@password varchar(200) --密码
,@filename varchar(1000) --目录名+文件名
,@tbname varchar(500)='' --数据库..表名
,@isout bit=1 --1为导出(默认),0为导入
as
declare @sql varchar(8000)set @sql='bcp "'+@tbname
+case when @isout=1 then '" out' else '" in' end
+' "'+@filename+'" /w' +' /S"'+@servername
+case when isnull(@username,'')='' then '' 
else '" /U"'+@username end
+'" /P"'+isnull(@password,'')+'"'
exec master..xp_cmdshell @sql
go但是,我在查詢分析器中調用這個存儲過程File2Table 'zj','','','f:\20030403.txt','temp',0時,出現這樣的錯誤提示:
Output
1.SQLState=08001,NativeError=17
2.Error=[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server=不存在或訪問被拒絕
3.SQLState=01000,NativeError=53
4.Warning=[Microsoft]][ODBC SQL Server Driver][DBNETLIB].ConnectionOpen(Connect()).
5.Null

解决方案 »

  1.   

    File2Table 'zj','','','f:\20030403.txt','temp..biao',0
      

  2.   

    T0 chao778899(220330):我這樣調用還是出同樣的問題.
    File2Table 'zj','','','f:\20030403.txt','temp..biao',0我表單名為:Temp,只有一個字段名:line char(40)
    20030403.txt 文件內容如下:2003040200:03FD0212011   5353437460  1 1
    2003040203:06FD0211057   5622173412  1 1
    2003040205:54MP0105015   5615240666  0 0
    2003040206:04MP0105001   5622356002  2 1
    2003040206:04MP0105014   5622217342  2 1
    2003040206:04MP0106042   5622243230  2 1
    2003040206:04MP0112008   5615161710  2 1
    2003040206:24FDD0303031  5352410574  1 1
    2003040206:40FDD0205007  5353255402  1 1
    2003040206:43MP0106046   5622131136  1 1
    2003040206:54FD0208103   5621133754  1 1
    2003040206:54FD0212289   0220366100  1 1
    2003040206:54FDD0209032  5353221204  1 1
    2003040206:55MP0109105   6474466354  0 0
    2003040206:57FDD0206151  5353450344  1 1
    2003040206:58FDD0205009  5352361142  0 0
    2003040207:06MP0108045   5622404010  1 1
    2003040207:10MP0301115   0220350222  0 0
    2003040207:23MP0212078   0220667762  0 0
    2003040207:26FDD0208007  5353235500  1 1
    2003040207:28FDD0206013  5352310230  0 0每行的長度也是40位.請問是什麽原因?
      

  3.   

    To:   online
       請你說詳細一點好嗎?
       最好是有例程.
       謝謝!
      

  4.   

    /** 导入文本文件
    EXEC master..xp_cmdshell 'bcp "dbname..tablename" in c:\DT.txt -c -Sservername -Usa -Ppassword'/** 导出文本文件
    EXEC master..xp_cmdshell 'bcp "dbname..tablename" out c:\DT.txt -c -Sservername -Usa -Ppassword'