------------------------------------------------------------------------
-- Author : navy887(草根)
-- 用途:同一目录下批量文件导入数据库
-- 使用方法:EXEC SP_BupInTxt 'sa','123'
-- 日期:2009.10.29
-- 转载请注明出处
------------------------------------------------------------------------
CREATE PROCEDURE SP_BupInTxt
(
@user varchar(100) ='sa', --数据库用户名
@password varchar(100) --数据库密码
)
AS
BEGIN
create table bcpintxt(col varchar(200))
create table datatable(col varchar(200)) --创建存放数据的表,根据自己的字段数据可以再添加
declare @SQL varchar(8000),@file varchar(8000)
insert into bcpintxt(col) exec master..xp_cmdshell 'dir c:/test/*.txt /b' --这里修改存放文件的目录
delete from bcpintxt where col is null
declare fetch_id cursor for select col from bcpintxt order by col
open fetch_id
fetch fetch_id into @file
while @@fetch_status=0
begin
Set @SQL='Bcp db_test.dbo.datatable in c:/test/'+@file+' -S 127.0.0.1 -U '+@user+' -P '+@password+' -t /t -c' --这里修改库名和路径
--Set @SQL='Bcp db_test.dbo.datatable in c:/test/'+@file+' -t /t -c -T' --加上-T可以不需要用户名密码
--print @sql
EXEC master..xp_cmdshell @sql
fetch next from fetch_id into @file
end
close fetch_id
deallocate fetch_id
drop table bcpintxt
END