当前位置: 首页 > news >正文

sql server导出与导入

解决:不同版本sql server复制表、导数据;把数据库的结构和全部数据从2016版导入到2014版。
分离数据为mdf,ldf后,导入过程中无权限、被占用问题。

文章目录

    • 使用脚本(.sql文件)
      • 导出
      • 导入
        • 备注
    • 使用mdf,mlf
      • 导出:
      • 导入

使用脚本(.sql文件)

导出

选中你要导出的数据库,右击,选择“任务-生成脚本”
选择对象选项卡中,选"选择具体的数据库对象",勾选全部表。
设置脚本编写选项一步,“将脚本保存到特定位置,单个文件,文件名(sql脚本名),Unicode文本”都不用多说。主要是需要在高级中设置:**高级(A)**中,设置如下:

服务器版脚本 : 选择SQL Server 2014
要编写脚本的数据的类型 : 架构和数据

然后关闭,点击下一步直到导出脚本。这个脚本就可以在2014版用。

导入

由于生成的.sql脚本文件执行时会在数据库中重新建表,因此,需要删除已有的数据库中的表,然后才能执行。(如果导出的时候只选择数据,可能就不用清空数据库了)。
也可以删除然后再新建数据库,即依次使用如下语句:

use [其他数据库名];		--不使用才能删除
Drop database [数据库名];
Create Database [数据库名];

然后打开生成的.sql脚本文件,全选然后执行即可。这一步会建立新数据库和表,还带着数据。

备注

如果想导入到一个新名称的数据库,使用上述的脚本也很简单。
导出的脚本第一句是: USE [数据库名A]
只需要新建一个[数据库B],然后把上述 [数据库名A]改成 [数据库B]即可。

使用mdf,mlf

此方法不适用于本例子,会报错,但是同版本没问题。使用平台为sql server 2016。

导出:

首先留意一下导出后的位置。

右键数据库-属性-文件-最后面有一个“路径”字段,指示着分离操作后的位置。

右击数据库-任务-分离-选择“删除连接”“更新统计信息”-确定,会得到数据库的.mdf和.ldf文件。
分离后,这个数据库就不出现在整个列表中了。如果想要留住,可以点击最上面数据库右键-附加-添加mdf文件-确定(这也是导入的一种方法)。
但是为了能够拷贝这个数据库,可以先拷贝一份。

但是如果mssqlserver在运行中的话,这两个文件是无法复制的,因为这就是相应数据库的存储数据。所以拷贝之前应该先关闭mssqlserver服务。

导入

导入(附加)时,要求目前不存在一个同名的数据库名(下述语句中的 [数据库名] )。

--导入mdf、ldf文件
exec sp_attach_db @dbname = [数据库名],
@filename1  =  "D:\Microsoft SQL Server\Files\TestData\....\A.mdf",     
@filename2  =  "D:\Microsoft SQL Server\Files\TestData\....\A_0.ldf"

在使用中发现,如果文件被导入,那么,这个文件就会随着数据库的CUID操作而改变。也就是,这些文件成为了相应数据库的数据存储位置。
而且它不能在mssqlserver运行中被拷贝,因为可能正有读/写请求

如果执行时遇到下述问题:

  1. 权限不足。 对上述两个文件,在资源管理器中,右击属性-安全-然后编辑Authentior权限为完全控制。
  2. 已经有用户在用。说明目前该mdf,ldf已经被附加过一次了,此时需要用其他的来源。当然也可以复制一份。但是如果mssqlserver在启动中的话,是无法复制的,所以应该先关闭该服务。

参考: https://blog.csdn.net/hzp666/article/details/81865580

http://www.lryc.cn/news/261033.html

相关文章:

  • DevEco Studio 项目鸿蒙(HarmonyOS)资源引用(自定统和系统)
  • 使用国内镜像源安装opencv
  • 人工智能与大数据的紧密联系
  • macbookpro 2024怎么恢复出厂设置
  • Linux系统编程(二):标准 I/O 库(下)
  • Mr. Cappuccino的第65杯咖啡——MacOS安装Docker
  • 解决 Docker Hub 国内无法访问的方法(Docker 镜像下载加速)
  • (第61天)多租户架构(CDB/PDB)
  • 【自定义Source、Sink】Flink自定义Source、Sink对ClickHouse进行读和批量写操作
  • linux 查看服务启动时间
  • [RK-Linux] 移植Linux-5.10到RK3399(六)| 检查GMAC(RTL8211F)配置使能千兆以太网
  • 博途WinCC专业版C/S架构入门指南
  • 大数据生态圈kafka在物联网中的应用测试
  • ChatGPT使用:一个发包机器人的提示词
  • Axure元件库的使用
  • Unity中Shader URP最简Shader框架(整理总结篇)
  • AT32F435飞控之DIATONE MAMBA MK5 F435 Anti-Interference
  • ntp时间同步配置中 server、pool和peer的区别
  • JMeter安装RabbitMQ测试插件
  • 基于ssm日用品网站设计论文
  • coco数据集格式的RandomCrop
  • 机器学习-KL散度的直观理解+代码
  • 【教程】制作 iOS 推送证书
  • ToolLLM model 以及LangChain AutoGPT Xagent在调用外部工具Tools的表现对比浅析
  • 【MySQL学习之基础篇】约束
  • 【DataSophon】大数据管理平台DataSophon-1.2.1基本使用
  • 基于redisson实现发布订阅(多服务间用避坑)
  • Java 源码、反码、补码 位运算
  • 时序分解 | Matlab实现NGO-ICEEMDAN基于北方苍鹰算法优化ICEEMDAN时间序列信号分解
  • Linux Conda 安装 Jupyter