sql2008如何用存储过程逐行读入txt文件啊

解决方案 »

  1.   

    逐行读取TXT一般是前端程序如C#等的工作,循环读取即可,但是如果TXT巨大,那估计你的程序没啥用。
    如果非要在sqlserver中实现,建议先导入,再用while或者游标实现,但是还是那句,效率往往都不如意。能说说你的意图吗?
      

  2.   

    是这样的
    txt里的数据是 123|20081212|这样的数据,根据一定的条件,发现有任意一条不匹配。整个txt文件的数据就不插入数据库。还要把是哪条数据不符合要求的信息保留到另外张表去
      

  3.   

    导入文本文件
    --入SQLServerselect *  into 你的表 from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=c:/temp;','select * from contact.txt')--查詢導出
    EXEC master..xp_cmdshell 'bcp "SELECT class_no,kind_no,cn_name FROM new_ks.dbo.kind ORDER BY 1,2" queryout "e:/TX1.txt" -c -q -S"sprogram" -U"develop" -P"12345"'
    --直接导出到txt文件EXEC master..xp_cmdshell 'bcp DB_MRP.dbo.dept out "e:/TX3.txt" -c -S"GUIDE-1" -U"develop" -P"12345"' --直接导出到xls文件
    EXEC master..xp_cmdshell 'bcp DB_MRP.dbo.dept out "e:/TX3.xls" -c -S"GUIDE-1" -U"develop" -P"12345"'  
    --直接導入EXEC master..xp_cmdshell 'bcp "數據庫.dbo.數據表" in c:/DT.txt -c -S服務器名 -U用戶 -P密碼'EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:/TX1.txt" -c -q -S -U -P'EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:/test3.xls" -c -q -S -U -P' 
    --用BULK INSERT導入BULK INSERT hdh.dbo.kindFROM 'e:/tx1.txt'WITH (    FIELDTERMINATOR = '/t',    ROWTERMINATOR = '/n')前提條件是表如kind要存在,而且字段與test.txt字段數目要一樣多在查詢分析器中運行,而且是以sa用戶登錄 
    bulk insert tbyhhk from 'c:/t.txt' with( formatfile='c:/bcp.txt')更多,请参考:
    http://blog.csdn.net/hdhai9451/article/details/215201
      

  4.   

    我用BULK INSERT 将txt文件的数据导入到临时表中去,如果中间发生类型不匹配等错误,能捕捉到吗
      

  5.   

    我用BULK INSERT 将txt文件的数据导入到临时表中去,如果中间发生类型不匹配等错误,能捕捉到吗
    --> 可用try catch捕捉错误..