将海量本地文件夹图片导入sql server
下面这个方法我看不太懂啊,如果我有一万张图片,岂不是要写一万条
go
insert photo_insert values(8009,0x) -- image字段必须的,且不是null
insert photo_insert values(8010,0x) -- image字段必须的,且不是null
go了???
我就想把c;\images 中的image00000.png--image10000.png名字和图片导入到表images(ID,IMAGES)中,谁能给我说下下面的代码怎么改啊,或者其他具体办法~~c#我也没学啊
--1、建立存储过程
CREATE PROCEDURE sp_textcopy (
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (50),
@whereclause varchar (40),
@direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
'textcopy /S ' + @srvname +
' /U ' + @login +
' /P ' + @password +
' /D ' + @dbname +
' /T ' + @tbname +
' /C ' + @colname +
' /W "' + @whereclause +
'" /F ' + @filename +
' /' + @direction
EXEC master..xp_cmdshell @exec_str
--2、建表和初始化数据(jobnumber字段要为文本型)
create table photo_insert (jobnumber varchar(20),photo image)
go
insert photo_insert values(8009,0x) -- image字段必须的,且不是null
insert photo_insert values(8010,0x) -- image字段必须的,且不是null
go
--xp_cmdshell功能默认是关闭的,需开启
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
--3、读入
sp_textcopy 'LSQ','sa','data20101203','master','photo_insert','photo','e:\beauty01.jpg','where jobnumber=8009','I' --注意条件是 工号=8009
go
--4、读出成文件
sp_textcopy 'LSQ','sa','data20101203','master','photo_insert','photo','e:\beauty001.jpg','where jobnumber=8009','O' --注意条件是 工号=8009
go
/*==========创建临时表=========== */
if object_id('#photo_Tmp') is not null drop table #photo_Tmp --删除临时表
create table #photo_Tmp --创建临时表#photo_Tmp
(ID int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1
jobnumber varchar(20), --工号字段
photo image, --图片二进制字段
primary key (ID) --定义ID为临时表#photo_Tmp的主键
);
insert into #photo_Tmp Select * from photo_insert --把数据插入到临时表
/*==========创建临时表=========== */
/*==========创建循环批量导入图片=========== */
declare @i int
declare @count int
declare @filename varchar(255)
declare @condition varchar(255)
set @i=1
set @count=(select COUNT(*) from #photo_Tmp)
while @i<=@count
begin
set @filename='e:\'+(select jobnumber from #photo_Tmp where ID=@i)+'.jpg'
set @condition='where jobnumber='+(select jobnumber from #photo_Tmp where ID=@i)
exec('sp_textcopy ''LSQ'',''sa'',''data20101203'',''master'',''photo_insert'',''photo'','''+@filename+''','''+@condition+''',''I''')
set @i=@i+1
end
/*==========创建循环批量导入图片=========== */
sql? 海量 图片
[解决办法]