最近遇到需要将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文件导入导出相关推荐

  1. Java实现SQLServer数据库mdf与ldf文件导入导出

    最近遇到需要将SQLServer数据库中的数据迁移到另外一台服务器上的业务场景.经过各方查阅资料,发现大部分导入导出功能都是在第三方数据库连接工具上实现的,不能满足我的需求.于是在下经过各种尝试终于实 ...

  2. 数据库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 ...

  3. sql server 数据库mdf与ldf文件的导入两种方法

    方法一: 在sql server 的某个数据库上新建查询, @dbname = 'databasename', @filename1 =  'mdf文件路径(包缀名)', @filename2 = ' ...

  4. ldf文件怎么储存到mysql中_如何转移数据库MDF和LDF文件

    我们可以很轻易地使用SQL Server来创建一个数据库,创建的数据库实例将存储在指定的默认位置(不一定是C盘,可以手动变更默认存储位置).假设此时数据库实例创建在了C盘中的默认位置,亦即是与数据库安 ...

  5. java上传视频到七牛云_Java进阶学习:将文件上传到七牛云中

    Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...

  6. mysql有mdf文件和ldf文件吗_如何得到.MDF和.LDF文件

    展开全部 方法和详bai细的操作步骤如下:du 1.第一步zhi,在桌面上,单击" Management Studio"图标,dao见下图版,转到下面的步骤权. 2.第二步,执行完 ...

  7. java上传文件功能_Java MemoryMapped文件的功能

    java上传文件功能 Java MemoryMapped文件的功能 在JDK 1.4中,内存映射文件的一个有趣功能被添加到Java中,该功能允许将任何文件映射到OS内存以进行有效读取. 内存映射文件可 ...

  8. java 上传文件注意事项

    java 上传文件注意事项 1.文件名有特殊字符的情况,所以最好是文件名前台url编码,后台再url解码,这点在下载的时候也一样 2.文件大小一定要设置,spring boot 有默认. 3.文件名校 ...

  9. java 上传文件到服务器_java上传文件到OSS云服务器(二)

    上篇文章中已经把接口端和service业务层写了,这次就把OSS上传文件的工具类补上. 一.首先配置好OSS服务器各项节点,这是在springboot中appliaction.yml配置文件中的写法. ...

最新文章

  1. JSON字符串的解析
  2. sql三个表join_「数据蒋堂」第 31 期:JOIN 简化 – 维度对齐
  3. base cap 分布式_干货分享:基于本地消息表的分布式事务解决方案总结
  4. 基于linux运行指的什么意思,基于Linux的Windows非常有意义
  5. [Java] 蓝桥杯BASIC-18 基础练习 矩形面积交
  6. mysql查看当前连接数据
  7. shell-一些有趣的使用
  8. linux 模板 制作工具,OpenTBS 1.8.0 发布,生成 Office 的模板工具
  9. android apk u盘升级_android升级安装包--包解析错误
  10. Go:go程序报错Cannot run program
  11. Java Logging之JUL系列——Log Levels
  12. 用户画像 | 标签数据存储之MySQL真实应用
  13. 编解码base64、对称加密aes和非对称加密rsa
  14. (转)操作系统实现多线程的几种模式
  15. 2014c语言二级考试题,2014年3月计算机二级C语言真题及答案
  16. echarts引入省份地图 失败原因
  17. 财报汇总 | 特步、埃森哲、中通、朴新教育等8家企业公布最新业绩
  18. 文本数据:横跨65年-116份巴菲特致股东的信
  19. 编程数学(A-1)-(B-1)-一个数的负次方怎么算
  20. [经验]Class MediaTransCoder is implemented in both One of the two will be used. Which one is undefined

热门文章

  1. 投稿MDPI旗下期刊的一些心得和记录
  2. python有效边界_Markowitz有效边界和投资组合优化基于Python(附代码)
  3. 食堂基础设施_基础设施美丽
  4. kafka原理详解,java泛型面试
  5. HEIC图片转换成其他格式
  6. 浅谈砍价拼团活动策划与效果 零起步引流
  7. RocketMQ源码解析之延迟消息实现原理
  8. 如果用计算机计算带有大括弧的数学题,紧急需要带有大括号,小括号,中括号的脱式计算题目...
  9. 在idea中连接Linux的mysql数据库(我的一生之敌防火墙)
  10. 小红书分析,11月千瓜品牌机构创作者排行榜(小红书平台)