mssqlserver 复制拷贝附件sql脚本(三)之异地服务器导出

mssqlserver 复制拷贝附件sql脚本(三)之异地服务器导出,第1张

概述--开启xp_cmdshell功能,否则无法使用xp_cmdshell--EXEC sp_configure 'show advanced options', 1;--RECONFIGURE;--EXEC sp_configure 'xp_cmdshell', 1;--RECONFIGURE;----数据库、原始附件存放位置、导出附件存放位置均不在同一台服务器。如数据库部署在服务器19
--开启xp_cmdshell功能,否则无法使用xp_cmdshell--EXEC sp_configure 'show advanced options',1;--RECONfigURE;--EXEC sp_configure 'xp_cmdshell',1;--RECONfigURE;----数据库、原始附件存放位置、导出附件存放位置均不在同一台服务器。如数据库部署在服务器192.168.1.19,---原始附件存放位置:192.168.1.20(web文件和数据库分开部署),导出附件存放位置:192.168.1.85(防止影---响生产环境资源和占用生产环境空间)declare @outputDir varchar(500)declare @orIDir varchar(500)declare @modeID intdeclare @fileID intdeclare @file@R_403_6889@ varchar(500)declare @filePath varchar(500)declare @cmd varchar(500)declare @desDir varchar(500)--导出附件存放的服务器信息declare @serverUser varchar(500)declare @server@R_403_6889@ varchar(500)declare @serverUrl varchar(500)declare @serverPwd varchar(500)--原始附件存放的服务器信息declare @fileServerUser varchar(500)declare @fileServer@R_403_6889@ varchar(500)declare @fileServerUrl varchar(500)declare @fileServerPwd varchar(500)--原始附件存放服务器信息set @orIDir='\192.168.1.20\d$'Set @fileserverUrl='\192.168.1.20\d$'Set @fileserver@R_403_6889@='192.168.1.20\'Set @fileserverUser='administrator'Set @fileserverPwd='123456'--要导出的目录(导出附件后存放的服务器信息)Set @outputDir='\192.168.1.85\e$\copyfileSite\Test'Set @serverUrl='\192.168.1.85\e$'Set @server@R_403_6889@='192.168.1.85\'Set @serverUser='administrator'Set @serverPwd='123456'  declare @cmd1 varchar(1000),@cmd2 varchar(1000),@cmd3 varchar(1000),@cmd4 varchar(1000) --对原始附件服务器磁盘创建映射关系 set @cmd2='net use ' + @fileserverUrl + ' "' + @fileserverPwd + '" /user:"' + @fileserver@R_403_6889@ + @fileserverUser + '"' EXEC master..xp_cmdshell @cmd2 --对导出附件服务器磁盘创建映射关系 set @cmd1='net use ' + @serverUrl + ' "' + @serverPwd + '" /user:"' + @server@R_403_6889@ + @serverUser + '"' EXEC master..xp_cmdshell @cmd1--获取附件信息select modeID,fileID,file@R_403_6889@,filePath into ##t from filetabledeclare cur cursor for select modeID,filePath from ##topen curfetch next from cur into @modeID,@fileID,@file@R_403_6889@,@filepathwhile @@fetch_status=0Begin select @desDir=isnull(zihao,'')+' '+Title from table1 where ID=@modeID) if @desDir is null  return --while ascii(right(@desDir,1))<32 --begin  set @desDir=replace(replace(@desDir,char(10),''),char(13),'') --end set @cmd='md "'+@outputDir + '\' +@desDir+'"' EXEC master..xp_cmdshell  @cmd,no_output --print @cmd set @cmd= 'copy "' +@orIDir +replace(@filePath,'/','\')+'"' + ' "' +@outputDir +'\'+ @desDir+'\'+@file@R_403_6889@+'"' EXEC master..xp_cmdshell   @cmd --print  @cmd set @cmd=''fetch next from cur into @modeID,@filepathEndclose curdeallocate curdrop table ##t
总结

以上是内存溢出为你收集整理的mssqlserver 复制拷贝附件sql脚本(三)之异地服务器导出全部内容,希望文章能够帮你解决mssqlserver 复制拷贝附件sql脚本(三)之异地服务器导出所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1161065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存