对Export data-tier application报错的处理 Error:SQL71564

这个问题是数据库中一些对象如MS_Description,MS_DiagramPane1不支持DAC Export Data-tier Appliation 的操作。

详见:DAC Support For SQL Server Objects and Versions http://msdn.microsoft.com/en-us/library/ee210549.aspx 这里有详细的说明。

遇到这个种问题一般的采用减轻问题的解决办法(Mitigation)

1. 首先选用支持DAC Extract Data-tier Application的数据库版本,如SQL Server 2008 R2 SP2或者更高版本。导出dacpac文件,这个文件包含了数据库结构,metadata和schema

2. 因为有的对象不支持DAC Export Data-tier Application,即导出bacpac文件。所以我们不能采取这种方式,我们采取微软提供的工具bcp.exe

3. 使用BCP.exe工具导出导入数据

  1. 下载并安装Microsoft® ODBC Driver 11 for SQL Server® - Windows http://www.microsoft.com/zh-cn/download/details.aspx?id=36434
  2. 下载并安装 Microsoft Command Line Utilities 11 for SQL Server http://www.microsoft.com/zh-CN/download/details.aspx?id=36433
  3. 使用BCP工具从SQL Server导出数据

参考用例:C:\Users\ericwen>bcp ZcooTongDB.dbo.ZCT_SuperAdmins out "D:\DAC Packages\ ZcooTongDB.bacpac" -U sa -P *****

  1. 使用BCP工具导入数据到SQL Azure

参考用例:C:\Users\ericwen>bcp ZcooTongDB1.dbo.ZCT_SuperAdmins in "D:\DAC Packages\ ZcooTongDB.bacpac" -U ericwen@[云数据库名称] -P ****** -S "[云数据库名称].database.windows.net"

bcp 实用工具:http://technet.microsoft.com/zh-cn/library/ms162802.aspx

在操作过程中可以用默认的选项,直接回车。如图:

如何实现批量导出数据呢,可以再SSMS运行以下脚本

SELECT 
      'bcp ' 
    + SCHEMA_NAME(schema_id) + '.' + name 
    + ' out ' 
    + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt' 
    + ' -c ' 
    + ' -S servername.database.windows.net ' 
    + ' -d database_name ' 
    + ' -U username ' 
    + ' -P password' 
FROM sys.tables;

将查询结果保存到bcpcmd.bat文件中,然后用cmd运行即可

4. 清除数据库中的Table、View、Column中的不支持DAC的对象(不支持Export 到 bacpac文件的对象)

在SSMS里运行

--tables 
  
select 'EXEC sp_dropextendedproperty 
@name = ''MS_Description'' 
,@level0type = ''schema'' 
,@level0name = ' + object_schema_name(extended_properties.major_id) + ' 
,@level1type = ''table'' 
,@level1name = [' + object_name(extended_properties.major_id)+']' 
from sys.extended_properties 
where extended_properties.class_desc = 'OBJECT_OR_COLUMN' 
and extended_properties.minor_id = 0 
and extended_properties.name = 'MS_Description'

--views 
  
select 'EXEC sp_dropextendedproperty 
@name = '''+extended_properties.name+''' 
,@level0type = ''schema'' 
,@level0name = ' + object_schema_name(extended_properties.major_id) + ' 
,@level1type = ''view'' 
,@level1name = [' + object_name(extended_properties.major_id)+']' 
from sys.extended_properties 
where extended_properties.class_desc = 'OBJECT_OR_COLUMN' 
and extended_properties.minor_id = 0 
and (extended_properties.name = 'MS_DiagramPane1' or extended_properties.name = 'MS_DiagramPaneCount')

--columns 
  
select 'EXEC sp_dropextendedproperty 
@name = ''MS_Description'' 
,@level0type = ''schema'' 
,@level0name = ' + object_schema_name(extended_properties.major_id) + ' 
,@level1type = ''table'' 
,@level1name = ' + object_name(extended_properties.major_id) + ' 
,@level2type = ''column'' 
,@level2name = [' + columns.name+']' 
from sys.extended_properties 
join sys.columns 
on columns.object_id = extended_properties.major_id 
and columns.column_id = extended_properties.minor_id 
where extended_properties.class_desc = 'OBJECT_OR_COLUMN' 
and extended_properties.minor_id > 0 
and extended_properties.name = 'MS_Description'

将运行后的结果再到SSMS里运行就可以移除那些不支持的对象了,这样再进行Export操作就可以成功。

DAC相关文档:http://msdn.microsoft.com/en-us/library/ee210546.aspx

数据库SQL Server DAC 导入导出数据到SQL Azure问题相关推荐

  1. 转载-SQL Server各种导入导出数据方式的比较

    注:本文转载自 http://blog.csdn.net/nokiaguy/article/details/4684822 当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新 ...

  2. sql server 2008 导入导出数据大全

    /*******  导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q - S&quo ...

  3. Excel与Sql Server互通导入导出跨语言

    目录 Excel与Sql Server互通导入导出跨语言 1.目标Excel缺少表的列标题字段 1.1.问题的提出从这里开始 1.2.参数的正确写法 1.3.附带说一下Jet 4.0 1.4.附带说一 ...

  4. SQL Server 2008 R2导出数据脚本和导入数据库脚本的方法(原创+转载)

    以前看到有些朋友说必须SQL Server 2008才能导出包含数据的脚本,后来仔细研究发现其实SQL Server 2008 R2也是可以的,只需在导出的时候在高级中设置一下即可. 1.首先在数据库 ...

  5. oracle导出表中某天数据命令,Oracle数据库使用命令行导入导出数据表及数据内容(本地、远程)...

    一.本机导入导出 1.数据库导出命令,导出用户userA下的表结构和数据: exp 用户名/密码@服务名 owner=用户名 file=导出文件指定存储路径 full=y 2.数据库导入命令,将use ...

  6. sql server之导入excel数据

    step1: 选择需要导入数据的数据库 → 右键点击该数据库 → 任务 → 导入数据 step 2: 选择数据源及其文件路径 step3: 选择目标,确认服务器名称和数据库是否为导入数据的目标对象 ⭐ ...

  7. SQL Server 2005导入导出存储过程

    1. 可以用脚本备份 manger studio--右键你的数据库--任务--生成脚本 在脚本生成向导的"选择对象类型"步骤中, 将"存储过程"选上, 在接下来 ...

  8. SQL Server数据库导入导出数据方式比较

    在我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验.净化和转换时,将会面临很大的挑战.幸好SQL Server为我们提供了强大.丰富的数据 ...

  9. SQL Server 数据库之导入导出数据

    导入导出数据 1. 概述 2. 导入 SQL Server 数据表 3. 导入其他数据源的数据 4. 导出 SQL Server 数据表 1. 概述 导入数据也是数据库操作中使用频繁的功能,SQL S ...

  10. 数据库dmp文件的导入导出

    数据库dmp文件的导入导出 数据泵的使用 –sqlplus下执行 Create directory TEST as 'd:\test'; Grant read,write on directory T ...

最新文章

  1. uml 类图_UML 类图
  2. 自顶向下彻底理解 Java 中的 Synchronized
  3. js_jQuery【下拉菜单联动dom操作】
  4. java用i/o查看文件_Java文件I / O基础
  5. 【代码笔记】iOS-手机系统版本
  6. Android CompoundButton
  7. 尚学堂第十一章多线程习题答案
  8. 测试方法论——数据驱动测试
  9. java流重定向如何分类,Java 文件流与标准流之间的重定向
  10. 一种三分频电路的实现与仿真
  11. 北大计算机图灵班,北大2019“图灵班”计划招60人,在北大什么条件才能进图灵班?...
  12. IE高版本兼容低版本
  13. Android 7.0 ----- Direct Boot模式(AppClock)
  14. 冯诺依曼结构图-2020-09-05
  15. 用python构建机器学习模型分析空气质量
  16. mysql 事务机制
  17. matlab dmc控制代码,【原创】Matlab实现DMC控制加热炉程序
  18. 竹炭纤维集成墙面板装修的缺点是什么,有哪些弊端
  19. 1.决策技术解析与实现
  20. java赫夫曼编码(含赫夫曼编码代码)

热门文章

  1. sql数据库与c#的null的不同
  2. 对xhtml、dhtml、shtml的解释说明
  3. 我的SQL相关TIPS
  4. Studio One 5 Professional for Mac(多功能数字音频工作站)
  5. Mac系统打开dmg出现 “资源忙” 怎么解决?
  6. 音乐制作:用FL Studio做电子音乐
  7. java并发面试题整理
  8. jq 实现头像(气泡式浮动)
  9. web.config中的ExtensionlessUrlHandler-Integrated-4.0
  10. vue教程1-03 v-for循环