SQL2000数据写入及导出问题 如何将文件写入数据库中,再将该数据导出为原来的文件..SQL语句如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可利用textcopy.exe文件实现在数据库中存储/读取文件。textcopy.exe文件可以在SQL Server安装光盘中找到。在安装目录C:\Program Files\Microsoft SQL Server\MSSQL\Binn\下也有。 /*创建测试*/create table test (id int, files image) --用image类型字段保存文件insert test select 1,0x --将文件保存到files字段时,必须先初始化为0x/*命令提示符下输入:*/--将D:\01.doc文件保存到test.files,条件id=1textcopy /S"服务器名" /U 用户名 /P 密码 /D 数据库名 /T test /C files /W "where id=1" /F "D:\01.doc" /I--下面读出到E:\01.doctextcopy /S"服务器名" /U 用户名 /P 密码 /D 数据库名 /T test /C files /W "where id=1" /F "E:\01.doc" /O/*删除测试*/--drop table test --将textcopy.exe写成存储过程create procedure sp_textcopy@Server varchar(30), --服务器名@User varchar(30), --用户名@Password varchar(30), --密码@DBName varchar(30), --数据库名@TBName varchar(30), --表名@ColName varchar(30), --存储文件的字段名@FileName varchar(30), --要存取的文件名@Where varchar(40), --条件@Direction varchar(1) --I 为存储到数据库,O 从数据库中读出成文件asdeclare @Cmd varchar(255) select @Cmd = 'textcopy /S"' + @Server + '" /U ' + @User + ' /P ' + @Password + ' /D ' + @DBName + ' /T ' + @TBName + ' /C ' + @ColName + ' /W "' + @Where + '" /F "' + @FileName + '" /' + @Directionexec master..xp_cmdshell @Cmd,no_outputgo --保存exec sp_textcopy '服务器名','用户名','密码', '数据库', '表名', '列名', '文件名', 'where 条件','I'--读取exec sp_textcopy '服务器名','用户名','密码', '数据库', '表名', '列名', '文件名', 'where 条件','O' 除了textcopy外还有没有其他办法?本人处于局域网中,想本地将文件放到SQL服务器中,textcopy我试过好试有点问题........用bcp也不行,说找不到主流文件? 用BCP语句吧~语法很容易,自己去联机帮助上看看吧 bcp共有四个动作可以选择。 (1) 导入。 这个动作使用in命令完成,后面跟需要导入的文件名。 (2) 导出。 这个动作使用out命令完成,后面跟需要导出的文件名。 (3) 使用SQL语句导出。 这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。 (4) 导出格式文件。 这个动作使用format命令完成,后而跟格式文件名导出:bcp "select * from dbDaily.dbo.aaaaa with (nolock) where 更新 between '%date%' and dateadd(day,1,'%date%')" queryout %folder%dbo.aaaaa.dat -S%SvNm% -U%Usr% -P%Pwd% -n导入:bcp dbDaily.account.aaaaa in dbo.aaaaa.dat -S%SvNm% -U%Usr% -P%Pwd% -n -b1000 上网搜以下关于BCP的文章~~讲的比联机帮助通俗易懂 问个日期转换的问题. 急啊(sql自定义公式求值问题) sql联合查询条件问题 求一个存储过程,定长且以|分隔的文件抽取 智商太低,看了近200条回复后,更加晕啦! 请邹建大师给个终结答案. SQl的LIKE判断不能包含NULL值? Sqlserver验证方式登录错误 怎么还原一个备份? 在VS中无法写入SQL数据库 初学者求助,向两张表添加一条记录功能,求前辈们帮忙进来看看,该怎么做 关于两个表互相更新字段的触发器的写法???? 这个 SELECT SUM 有点烦!在线
在安装目录C:\Program Files\Microsoft SQL Server\MSSQL\Binn\下也有。
创建测试
*/
create table test (id int, files image) --用image类型字段保存文件
insert test select 1,0x --将文件保存到files字段时,必须先初始化为0x/*
命令提示符下输入:
*/--将D:\01.doc文件保存到test.files,条件id=1
textcopy /S"服务器名" /U 用户名 /P 密码 /D 数据库名 /T test /C files /W "where id=1" /F "D:\01.doc" /I--下面读出到E:\01.doc
textcopy /S"服务器名" /U 用户名 /P 密码 /D 数据库名 /T test /C files /W "where id=1" /F "E:\01.doc" /O/*
删除测试
*/
--drop table test
@Server varchar(30), --服务器名
@User varchar(30), --用户名
@Password varchar(30), --密码
@DBName varchar(30), --数据库名
@TBName varchar(30), --表名
@ColName varchar(30), --存储文件的字段名
@FileName varchar(30), --要存取的文件名
@Where varchar(40), --条件
@Direction varchar(1) --I 为存储到数据库,O 从数据库中读出成文件
as
declare @Cmd varchar(255)
select @Cmd = 'textcopy /S"' + @Server + '" /U ' + @User + ' /P ' + @Password + ' /D ' + @DBName + ' /T ' + @TBName + ' /C ' + @ColName + ' /W "' + @Where + '" /F "' + @FileName + '" /' + @Direction
exec master..xp_cmdshell @Cmd,no_output
go
exec sp_textcopy '服务器名','用户名','密码', '数据库', '表名', '列名', '文件名', 'where 条件','I'--读取
exec sp_textcopy '服务器名','用户名','密码', '数据库', '表名', '列名', '文件名', 'where 条件','O'
(1) 导入。
这个动作使用in命令完成,后面跟需要导入的文件名。
(2) 导出。
这个动作使用out命令完成,后面跟需要导出的文件名。
(3) 使用SQL语句导出。
这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。
(4) 导出格式文件。
这个动作使用format命令完成,后而跟格式文件名导出:bcp "select * from dbDaily.dbo.aaaaa with (nolock) where 更新 between '%date%' and dateadd(day,1,'%date%')" queryout %folder%dbo.aaaaa.dat -S%SvNm% -U%Usr% -P%Pwd% -n导入:bcp dbDaily.account.aaaaa in dbo.aaaaa.dat -S%SvNm% -U%Usr% -P%Pwd% -n -b1000