zoukankan      html  css  js  c++  java
  • SQL SERVER 的导入导出文件

    每次要用到SQL SERVER 的导入导出文件都大为烦恼,甚至吓到面无人色。实在是太难用了,又繁琐,又总是报错,如果不是万不得已,鬼才用它。

    这种不幸的事情,今天又撞上了。

    事关有个数据库要从机器A迁移到机器B,倒霉的是,源数据库的版本比目标数据库高。真他妈的,微软,我操你姥姥!高版本的不能迁到低版本,那你在备份的时候加个选项不行吗?两个数据库都是SQL 2008,但居然还有高低之分。草泥马。

    只好先从源数据库生成脚本,到目标库运行,然后将数据库导出导入。

    这导出导入,真是吃尽了千辛万苦!

    总结问题及解决方法如下:

    一、导出

    导出相对而言比较简单,一般都默认就可以了。有2个地方值得一提

    1、unicode

    适用于用到了字段类型为 nvarchar(max) 之类的情况,默认死活导不出来,将unicode选项勾上就可以鸟。



    2、文本限定符

    导出的时候也有个文本框让你填,叫“文本限定符”,what is this?

    大意是这样子的:填上的这个东西,将会用于“框住”每个字段值,让字段有个清晰的边界,利于导入时系统分辨。

    好比说,我导出的数据中,有好多文本,有些字段甚至保存的是文章内容,里面有逗号、句号、回车符什么的,那这个字段之间的边界就很不清晰了,导入的时候,系统很可能无法识别。这样的话就要靠这个文本限定符。

    文本限定符可以不只一个字符!比如我这样定义文本限定符:!#!,那么导出来的文本内容是这样的:

    !#!1!#!,!#!<p>文章概要:我心疼他,感激他,也想好好的爱他一生,狗屁!看错人啦!</p>!#!

    相应地,导入时也要填写相同的文本限定符。


    二、导入

    1、一定要纠正字段的数据类型

    导入的时候,系统会将所有的字段都默认当成字符型,且长度只有50,死活导不进去。一定要纠正字段的数据类型:


    其中INT是四字节带符号整型,TINYINT是单字节无符号整型,NVARCHAR(MAX)是Unicode 文本流 [DT_NTEXT],等等


    2、注意标识列

    如果有字段是标识列,那应该在编辑映射时,将“启用标识插入”




  • 相关阅读:
    Flutter子组件调用父组件方法修改父组件参数
    Flutter点击两次返回键退出APP
    Flutter路由跳转父级页面向子页面传参及子页面向父级页面传参
    Flutter中用ListView嵌套GridView报错异常
    前端项目统一 ESlint 规则集
    前端规范
    手写防抖(Debouncing)和节流(Throttling)
    手写promise进阶版本
    实现一个call或 apply
    实现一个JSON.stringify()
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258067.html
Copyright © 2011-2022 走看看