mssqlserver 复制拷贝附件sql脚本(二)之异地服务器导出
来源:互联网 发布:lte优化工程师前景 编辑:程序博客网 时间:2024/05/16 07:12
说明:以下脚本利用mssql实现附件从一个盘导出拷贝到另外一台服务器上面的另外一个盘(ps:数据库、原始附件所在位置部署在同一台服务器,导出附件则存放在与它们不同的另一台服务器)
--数据库、附件在同一台服务器,导出附件到另外一条服务器declare @outputDir varchar(500)declare @oriDir varchar(500)declare @serverName varchar(500) --存放附件服务器ip名称declare @serverUrl varchar(500) --存放附件服务器ip及存放磁盘路径declare @serverPwd varchar(500) --存放附件服务器密码declare @serverUser varchar(500) --存放附件服务器登录名declare @cmd varchar(4000)declare @desDir varchar(500)declare @folder varchar(500)declare @modeid int declare @fileid intdeclare @filename varchar(500)declare @filePath varchar(500)declare @rowid intdeclare @xh int declare @zihao varchar(1000)declare @title varchar(1000)--原始附件所在目录(因为数据库和附件在同一台服务器,所以系统自动识别数据库所在服务器下的盘符)Set @oriDir='d:\FileSite' --要导出附件存放的服务器及所在目录Set @outputDir='\\192.168.1.20\d$\CopyFileSite\TestFile'--远程服务器地址、密码、用户(导出附件存放的服务器用户信息及存放盘符)Set @serverUrl='\\192.168.1.20\d$'Set @serverName='192.168.1.20\'Set @serverUser='administrator' --最好用超级管理员,防止没有权限Set @serverPwd='123456'--从数据库查找附件名称、路径等信息(根据实际情况编写脚本)select rowid=row_number() over(partition by kp.xh order by kp.xh),kp.xh,kp.docid,kp.zihao,kp.title ,att.filename,att.modeid,att.fileid,att.filepathinto ##tempfrom kp join fileTable att on att.modeid=kp.docidorder by kp.xh --创建远程服务器映射关系 declare @cmd1 varchar(1000) set @cmd1='net use ' + @serverUrl + ' "' + @serverPwd + '" /user:"' + @serverName + @serverUser + '"' EXECmaster..xp_cmdshell @cmd1--print @cmd1--游标循环遍历导出附件declare cur cursor for select xh,rowid,zihao,title,modeid,fileid,fileName,FilePath from ##temp open curfetch next from cur into @xh,@rowid,@zihao,@title,@modeid,@fileid,@filename,@filepathwhile @@fetch_status=0Beginset @zihao=replace(@zihao,char(9),'')set @zihao=replace(@zihao,char(10),'')set @zihao=replace(@zihao,char(11),'')set @zihao=replace(@zihao,char(12),'')set @zihao=replace(@zihao,char(13),'')set @zihao=replace(@zihao,'\','')set @zihao=replace(@zihao,'/','')set @zihao=replace(@zihao,':','')set @zihao=replace(@zihao,'*','')set @zihao=replace(@zihao,'?','')set @zihao=replace(@zihao,'"','')set @zihao=replace(@zihao,'<','')set @zihao=replace(@zihao,'>','')set @zihao=replace(@zihao,'|','')set @filename=replace(@filename,char(9),'')set @filename=replace(@filename,char(10),'')set @filename=replace(@filename,char(11),'')set @filename=replace(@filename,char(12),'')set @filename=replace(@filename,char(13),'')set @filename=replace(@filename,'\','')set @filename=replace(@filename,'/','')set @filename=replace(@filename,':','')set @filename=replace(@filename,'*','')set @filename=replace(@filename,'?','')set @filename=replace(@filename,'"','')set @filename=replace(@filename,'<','')set @filename=replace(@filename,'>','')set @filename=replace(@filename,'|','')set @title=replace(@title,char(9),'')set @title=replace(@title,char(10),'')set @title=replace(@title,char(11),'')set @title=replace(@title,char(12),'')set @title=replace(@title,char(13),'')set @title=replace(@title,'\','')set @title=replace(@title,'/','')set @title=replace(@title,':','')set @title=replace(@title,'*','')set @title=replace(@title,'?','')set @title=replace(@title,'"','')set @title=replace(@title,'<','')set @title=replace(@title,'>','')set @title=replace(@title,'|','')--去除加急的网页符号set @title=replace(@title,'[font color=red','')set @title=replace(@title,'font]','_')--endif @title is null or @title=''beginset @title='无标题'end--序号+docid+文号+标题--d:\testdownload\1_29076_ 中国〔2009〕3号_关于附件异地导出脚本测试set @folder=rtrim(cast(@xh as varchar) + '_' + cast(@modeid as varchar) + '_' + @zihao + '_' + @title) set @cmd='md "'+@outputDir + '\' + @folder +'"'EXECmaster..xp_cmdshell @cmd,no_output--print @cmdset @cmd= 'copy "' +@oriDir +replace(@filePath,'/','\')+'"' + ' "' +@outputDir +'\'+ @folder +'\'+cast(@rowid as varchar)+'_'+@filename+'"'EXECmaster..xp_cmdshell @cmd--print @cmdset @cmd=''fetch next from cur into @xh,@rowid,@zihao,@title,@modeid,@fileid,@filename,@filepathEndclose curdeallocate curdrop table ##temp
0 0
- mssqlserver 复制拷贝附件sql脚本(二)之异地服务器导出
- mssqlserver 复制拷贝附件sql脚本(三)之异地服务器导出
- mssqlserver 复制拷贝附件sql脚本(一)
- SQL Server 开发之 复制表数据的SQL脚本生成器(带参数导出)
- MSSQLServer基础02(SQL语句入门(脚本、命令))
- 聚焦 SQL 数据库活动异地复制
- 关于SQL数据库的异地备份(二)
- SQL Server语句大全之二——提升部分(复制表、拷贝表、子查询、随即选择、初始化表)
- 跨服务器上复制文件,以及执行sql脚本
- C++之--拷贝(复制)构造函数
- 使用SQL Server 2008数据库复制实现异地数据备份
- MsSqlServer 复制分发概述
- mysql导出sql脚本
- MySql导出sql脚本
- powerdesigner导出sql脚本
- oracle导出sql脚本
- plsql 导出 sql脚本
- PowerDesigner:导出SQL脚本
- Runtime执行某一个程序
- DOM解析XML(一)
- 用c++写的简易学生通讯录
- unpack
- 远程传文件
- mssqlserver 复制拷贝附件sql脚本(二)之异地服务器导出
- Quick-cocos2d-x 与COCOS2DX 区别
- getContextPath
- 什么是大型机和小型机
- 关于fragment 中onActivityResult()回调的问题
- Layer中自定义属性的动画
- red hat网络配置
- how to debug program:原则,以网络为例子
- oracle 存储过程