SQL Server 表迁移

SQL Server 表迁移

手动单表迁移

迁移表结构

  1. 先删除原表,删除时注意结构,从最次要的表删起
  2. 对原表右键 - Script Table as - CREATE To - New Query Editor Window
  3. image
  4. 复制全部的脚本
  5. 在新数据库下,新建一个查询,然后把刚才复制的脚本粘贴过来,修改 USE 的数据库,执行

迁移表内容

  1. 由于是单表迁移,不需要使用脚本,直接全查询表的数据
  2. /****** Script for Select command from SSMS  ******/
    SELECT [xxx],[xxx]
      FROM [xxx].[xxx].[xxx]
  3. 查询完毕后,在 Results 中点击左上角空白按钮,全选项目
  4. image
  5. 再右键空白按钮,选择 Save Result As...
  6. image
  7. 格式可以选择 txt 或者 csv,前者不需要处理,后者要转成 xls
  8. image

    转的话,用表格软件打开,然后另存为就行

    image
  9. 在新数据库环境下,右键数据库 - 任务 - 导入数据…
  10. image
    💡

    一定不要复制原表全查询结果,然后直接粘贴!会非常慢,尤其是你远程连接的,2w条数据要三个多小时!

  11. 选择数据源里,如果之前导出的是 txt,选择 Flat File Source,如果是转换过的 Excel 文件,选择 Microsoft Excel
  12. image
  13. 选择目标这里,选择 Microsoft OLE DB Driver for SQL Server,然后重新输入下账号密码
  14. image
  15. 选择 复制一个或多个表或视图的数据
  16. image
  17. 目标这里,重新选择下对应的表
  18. image
  19. 检查映射,这里如果有IDE无法转换的类型(比如没有处理得当的日期)就会报错,能自动转换的会显示感叹号,可以进行下一步
  20. image
  21. 立即运行,然后点击 Finish
  22. image

脚本迁移

  1. 在数据库上右键,Task - Cenerate Scripts... 创建一个脚本
  2. image
  3. 在 Choose Objects 里,选择一个或多个需要的表,然后下一步
  4. image
  5. 这里点击 Advanced
  6. image
  7. 选择到底是要表结构,还是表数据,还是全都要
  8. image
    💡

    但是这里坑,每个大版本的 Studio 这里的界面和表述不一样,自己加以理解并选择

  9. 然后他会生成一个 sql 文件,里面是 sql 文,一条一条的 Insert,拿到新表中执行即可
  10. 💡

    但是如果你的条目太多(根据机器性能决定),一次性执行可能会崩,要分多次执行

整个数据库迁移,再选择需要的表 Insert

  1. 首先备份原来的数据库,右键数据库 Tasks - Back Up...
  2. image
    💡

    这里要注意你这个数据库名称不能跟目标数据库名称相同,因为后面需要放在一起

  3. Destination 里 Add... 选择一个本地路径
  4. image
    💡

    注意,这里的目录是你服务器所在机器的目录,不是你运行这个数据库 IDE 机器的的目录

  5. 目标数据库导入这个数据库后使用 insert 命令导入数据
  6. INSERT INTO dbname..sheetname SELECT * FROM dbname..sheetname.