• 如何把本地的数据库,导入到远程的数据库呢? 如何把本地的数据库中的表的结构和数据库里面的数据传过去呢?数据库的一些版本号


    如果是显示  sql server 8.0    是指  sql server 2000

    如果是显示  sql server 9.0    是指 sql server 2005

    如果是显示 sql server  10.0  是指 sql server 2008

    如果是显示  sql server 10.50 是指  sql server 2008 r2

    这篇文章, 最正确的部分是在最下面,请直接跳到最下面即可。

    这个时候我们分2步走

    (1):创建表结构

    image_thumb[1]

    我看到牛腩有个很好的方法,一个数据库里面,放多个表

    例如 数据库的名字是  JoeyData

    但是我们的项目可以分为  shop_niunan 的项目的表 我们都加一个 shop_niunan,  比如新闻发布系统 我们都用 News-niunan  ,这样一个数据库,就可以重复利用了。

    选择要生成的表和存储过程

    image

    image

    注意,下面这一张图是会报错的,这一步应该按照本文章最下面的那张图来执行

    image

    上面这一张图,请按照本文章最后一张图来执行

    image

    点击完成, 会在 新的查询窗口中,显示创建语句,记得删除第一行的 using   (如果你不想下面报错的话,建议你把这个sql后面的  关于外键的地方,都先不执行,然后导入数据,最后再来执行 外键的语句,就不会有我下面的报错了)

    image

    image

    这样表结构就已经上传成功了,我们来看看 主键,外键都在否

    image image

    第二步:导入数据

    image

    image

    image

    image
    image

    然后我们启用标识插入:如果目标表中id字段是主键并且启用了标示符,则导入数据的时候必须选择“启用标识插入”,否则无法插入数据。

    image

    image

    其实我最担心的是  id 的值 改变了,比如 以前产品的表的id  是  1,2,4,7,9,10   会不会导入数据之后变成  1,2,3,4,5 这样

    image

    但是刚才这样是会报错的

    因为在 订单表和订单详情表,产品表和产品评论表,产品类别表和产品表,都是有外键关系的,我们需要先把主键表的数据上传,然后再上传外键表的数据

    因为有约束只能先导主表,再导约束的子表,否则会出错

    image

    所以我们先删除掉所有的表和存储过程,运行sql脚本,再回到刚才的导入导出,先导出主键表,再导 外检表,就可以了

    image

    但是这样好麻烦,后面看到有的人用了这样的一个方法,还是先执行完所有的脚本语句,包括 外键,然后

    1、--导入前,禁用所有的约束 
      exec   sp_msforeachtable   'alter   table   ?   nocheck   constraint   all' 
      --然后进行数据清除/导入 
      --导入后,启用所有的约束 
      exec   sp_msforeachtable   'alter   table   ?   check   constraint   all' 

    2、不能导入可尝试:
    在导入时,是否选项中以下选项:1)删除目标表中的行(这个有问题,要手动去删除目标表中的行,如果不能手动删除,提示有约束,可以执行步骤1)2)要选择在目标中追加行(一般可以解决)
    3、对复制禁用外键约束

    SQL Server 支持复制。如果约束是针对源数据库的,而且可能不必要地阻止向目标数据库输入新数据,则可选择该选项以在复制过程中禁用外键约束。

    对复制禁用外键约束

    在数据库关系图中,右击包含该外键的表,然后从快捷菜单中选择“属性页”。
    - 或 -

    对于包含要修改的外键的表,打开表设计器,在其中右击,然后从快捷菜单中选择“属性页”。

    选择“关系”选项卡。
    从“选定的关系”列表中选择关系。
    清除“对复制强制关系”复选框。
    4、启用标识插入是指:将数据源的标识插入目标表,可以保持数据一致性,而不是目标表自动递增

    其实有一种更简单的方法。

    删除所有的表,删除存储过程。真正的解决方法,很简单

    重新选择本地的数据库,选择生成脚本的时候,在高级选项里面选择 架构和数据。 这样,我们只用运行这个sql脚本就可以了,不用再额外导入数据了

    image

    那么在生成的sql 里面  会看到很多 insert into 之类的语句,就是帮我们插入数据的,然后用这个sql  在远程数据库上,执行,是否会报错呢?是否还会受到外键的约束呢?

    这个是可以的,而且数据的ID也都是和本地的一样的。

  • 相关阅读:
    开源微信管家平台——JeeWx 捷微4.0 微服务版本发布,全新架构,全新UI,提供强大的图文编辑器
    JeeWx全新版本发布!捷微二代微信活动平台1.0发布!活动插件持续开源更新!
    JEECG 3.7.8 新版表单校验提示风格使用&升级方法(validform 新风格漂亮,布局简单)
    Java快速开发平台——JEECG 3.7.8 版本发布!我们的目标是有鱼丸也有粗面
    企业如何快速搭建小程序官网
    如何玩转小程序+公众号?手把手教你JeeWx小程序CMS与公众号关联
    deepClone deepCompare
    fiddler
    spy-debugger
    队列
  • 原文地址:https://www.cnblogs.com/iceicebaby/p/2492228.html
Copyright © 2020-2023  润新知