JAVA上传文件到SQLserver_Java实现SQLServer数据库mdf与ldf文件导入导出
最近遇到需要将SQLServer数据库中的数据迁移到另外一台服务器上的业务场景。经过各方查阅资料,发现大部分导入导出功能都是在第三方数据库连接工具上实现的,不能满足我的需求。于是在下经过各种尝试终于实现了使用java代码实现导入导出的功能,希望能够遇到这种需求的开发人员一点帮助。talk is cheap,show you the code!
导入功能:
直接使用jdbctemplate执行以下语句
set nocount on exec sp_attach_db @dbname = '数据库名称', @filename1 = 'mdf路径',@filename2 = 'ldf路径'
使用set nocount on的原因是由于执行语句时消除消息栏信息对执行结果的影响。
导出功能:
由于SQLServer数据库是直接对mdf与ldf文件进行读取操作的,所以在直接导出这两个文件时会说文件正在使用,无法对其进行操作。所以我们要先将连接数据库的进程杀死在进行操作。杀死进程有两种方式:
第一种:
declare
@i int declare cur cursor for
select spid from sysprocesses where db_name(dbid)= '要断开连接的数据库名称'
open cur
fetch next from cur into @i
while @@fetch_status=0
begin
exec('kill '+@i)
fetch next from cur into @i
end
close cur
deallocate cur
经过尝试这种方式还是无法解除mdf与ldf文件的限制。但是使用了这段代码后可以直接删除数据库,如果有覆盖数据的需求,可以先执行这段代码,然后可以实现数据覆盖的功能。
第二种:
Process pro = Runtime.getRuntime().exec("net stop mssqlserver")
简单粗暴,直接使用Process类将SQLServer的进程杀死。但是在杀死的过程中需要管理员身份才能成功,所有使用了nircmd的工具,这里可以直接下载
nircmd下载
使用后命令为
Process pro = Runtime.getRuntime().exec("nir.exe的路径 elevate net stop mssqlserver")
这样运行的时候会弹出一个选择框询问是否同意更改,十分影响操作,可以在windows中将它关闭掉。
经过上面一顿操作,就可以正常的将文件复制,下载出来了。
最后一定要记得要SQLServer服务启动!
JAVA上传文件到SQLserver_Java实现SQLServer数据库mdf与ldf文件导入导出相关推荐
- Java实现SQLServer数据库mdf与ldf文件导入导出
最近遇到需要将SQLServer数据库中的数据迁移到另外一台服务器上的业务场景.经过各方查阅资料,发现大部分导入导出功能都是在第三方数据库连接工具上实现的,不能满足我的需求.于是在下经过各种尝试终于实 ...
- 数据库mdf和ldf文件_如何将SQL数据库文件(MDF和LDF)移动到另一个位置
数据库mdf和ldf文件 How often you got to the point that for any reason you don't have enough space on the s ...
- sql server 数据库mdf与ldf文件的导入两种方法
方法一: 在sql server 的某个数据库上新建查询, @dbname = 'databasename', @filename1 = 'mdf文件路径(包缀名)', @filename2 = ' ...
- ldf文件怎么储存到mysql中_如何转移数据库MDF和LDF文件
我们可以很轻易地使用SQL Server来创建一个数据库,创建的数据库实例将存储在指定的默认位置(不一定是C盘,可以手动变更默认存储位置).假设此时数据库实例创建在了C盘中的默认位置,亦即是与数据库安 ...
- java上传视频到七牛云_Java进阶学习:将文件上传到七牛云中
Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...
- mysql有mdf文件和ldf文件吗_如何得到.MDF和.LDF文件
展开全部 方法和详bai细的操作步骤如下:du 1.第一步zhi,在桌面上,单击" Management Studio"图标,dao见下图版,转到下面的步骤权. 2.第二步,执行完 ...
- java上传文件功能_Java MemoryMapped文件的功能
java上传文件功能 Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取. 内存映射文件可 ...
- java 上传文件注意事项
java 上传文件注意事项 1.文件名有特殊字符的情况,所以最好是文件名前台url编码,后台再url解码,这点在下载的时候也一样 2.文件大小一定要设置,spring boot 有默认. 3.文件名校 ...
- java 上传文件到服务器_java上传文件到OSS云服务器(二)
上篇文章中已经把接口端和service业务层写了,这次就把OSS上传文件的工具类补上. 一.首先配置好OSS服务器各项节点,这是在springboot中appliaction.yml配置文件中的写法. ...
最新文章
- JSON字符串的解析
- sql三个表join_「数据蒋堂」第 31 期:JOIN 简化 – 维度对齐
- base cap 分布式_干货分享:基于本地消息表的分布式事务解决方案总结
- 基于linux运行指的什么意思,基于Linux的Windows非常有意义
- [Java] 蓝桥杯BASIC-18 基础练习 矩形面积交
- mysql查看当前连接数据
- shell-一些有趣的使用
- linux 模板 制作工具,OpenTBS 1.8.0 发布,生成 Office 的模板工具
- android apk u盘升级_android升级安装包--包解析错误
- Go:go程序报错Cannot run program
- Java Logging之JUL系列——Log Levels
- 用户画像 | 标签数据存储之MySQL真实应用
- 编解码base64、对称加密aes和非对称加密rsa
- (转)操作系统实现多线程的几种模式
- 2014c语言二级考试题,2014年3月计算机二级C语言真题及答案
- echarts引入省份地图 失败原因
- 财报汇总 | 特步、埃森哲、中通、朴新教育等8家企业公布最新业绩
- 文本数据:横跨65年-116份巴菲特致股东的信
- 编程数学(A-1)-(B-1)-一个数的负次方怎么算
- [经验]Class MediaTransCoder is implemented in both One of the two will be used. Which one is undefined
热门文章
- 投稿MDPI旗下期刊的一些心得和记录
- python有效边界_Markowitz有效边界和投资组合优化基于Python(附代码)
- 食堂基础设施_基础设施美丽
- kafka原理详解,java泛型面试
- HEIC图片转换成其他格式
- 浅谈砍价拼团活动策划与效果 零起步引流
- RocketMQ源码解析之延迟消息实现原理
- 如果用计算机计算带有大括弧的数学题,紧急需要带有大括号,小括号,中括号的脱式计算题目...
- 在idea中连接Linux的mysql数据库(我的一生之敌防火墙)
- 小红书分析,11月千瓜品牌机构创作者排行榜(小红书平台)