SQLSERVER对单个表部分数据的导出导入

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQLSERVER将一个表中的部分查询数据导入另一个表中的方法:
一、若源表与目标表同在一台机器上,直接写SQL语句即可:
源表名:prdproductinfo_Source 称目标表名:PrdProductInfo_Goal
INSERT INTO [PrdProductInfo_Goal]
([productTypeCode]
,[productTypeName]
,[productModelId]
,[productModelCode]
,[productModelName]
,[productModelSpec]
,[productCode]
,[productName]
,[madePlace]
,[packageLanguage]
,[devicesNumber]
,[madeBatchNumber]
,[madeCommandOrder]
,[madeDate]
,[outDate])
(select [productTypeCode]
,[productTypeName]
,[productModelId]
,[productModelCode]
,[productModelName]
,[productModelSpec]
,[productCode]
,[productName]
,[madePlace]
,[packageLanguage]
,[devicesNumber]
,[madeBatchNumber]
,[madeCommandOrder]
,[madeDate]
,[outDate] from prdproductinfo_Source)
二、若源表与目标表不在同一台机器上,则可先将源表中的数据导出到
EXCEL中,再将EXCEL中的数据导入到目标表中。

操作步骤如下:
A、将源表中的数据导出到EXCEL中,步骤如下:
1、选中数据库,右键-任务-点击“导出数据”,如下图:
2、点击下图中的“下一步”:
3、在“选择数据源”窗口,保持默认值,点击“下一步”:
4、在“选择目标”窗口,在“目标”项的下拉框中,选择“Microsoft Excel”
在Excel文件路径一栏后,点击“浏览”,选择要导出的Excel文件的存放路径及Excel名称。

点击“下一步”
5、在“指定表复制或查询”界面,选中“编写查询以指定要传输的数据”
点击“下一步”
6、在“提供源查询”窗口中,输入要导出的SQL语句,
可以点击“分析”,来判断所写的SQL语句语法是否有误。

点击“下一步”
7、在“选择源表和源视图”窗口中,目标栏下方的“查询”可以对其修改,所改的名称将是Excel选项卡的名称,在导入时,将会是导入的表的名称。

修改目标项为:prdproductinfo_1
点击“下一步”:
8、打开“保存并执行包”窗口
点击“下一步”
9、打开“完成该向导”窗口。

点击“完成”,
10、打开“执行成功”窗口。

至此,导出EXCEL完成。

B、将EXCEL中的数据导入到目标表中:
1、选中目标数据库,右键--任务--点击“导入数据”,如下图:
打开如下界面:
2、点击“下一步”,打开“选择数据源”窗口,
在“数据源”一栏中,选择“Microsoft Excel”,在Excel文件路径一栏中,点击“浏览”,选中之前导出的“prdproductinfo.xls”,点击“下一步”。

3、打开“选择目标”窗口,在此窗口中,保持“目标”及“服务器名称”、“数据库名称”默认值,
点击“下一步”
4、打开“指定表复制或查询”窗口,选中“复制一个或多个表或视图的数据”
点击“下一步”
5、在打开的“选择源表和源视图”窗口中,选中第一行复选框,
(1)如果是想新建一个空表的话,则直接在目标列中输入新的表名即可,在此界面中直接点击“编辑”,弹出“列映射”窗口,如下图:(创建目标表)
在该窗口中,可以看到,默认选中“创建目标表”单选钮,且该单选项不能手工进行选择。

此时只能是新建一个表,新建的表名,即界面上方的“目标”项。

(2)如果是想在已有的表中追加行数据的话,则在目标列的下拉框中选中要导入数据的目标表。

如下图:
点击映射列的“编辑”,弹出“列映射”窗口,如下图:(向已有的表中追加行数据)
选中“启用标识插入”,点击“确定”。

6、在“选择源表和源视图中”,点击“下一步”。

出现如下界面:
7、点击“下一步”,出现“完成该向导”界面:
8、在“完成该向导”界面,点击“完成”:
至此导入数据成功完成。

三、下面介绍一下在导入过程中碰到的一些异常问题的解决方法:
1、在导入过程最后,出现下面的错误界面:
点击“消息”,弹出“查看报告”界面,如下图:
查看表字段类型发现,productTypeCode等字段类型为:varchar,而EXCEL导入时,会将这些字符以类型为:nvarchar的形式导入。

解决方法:
A、将表中varchar类型的字段修改为:nvarchar 类型。

B、导入一个临时表,再通过SQL语句导入。

Insert into 目标表名 (目标字段名1,目标
字段名2,…,目标字段名n)(select 源字段名1,源字段名2,…,源字段名n from 源表名)。

如:
INSERT INTO [PrdProductInfo]
([productTypeCode]
,[productTypeName]
,[productCode]
,[productName]
)
(SELECT [productTypeCode]
,[productTypeName]
,[productCode]
,[productName]
from prdproductinfoxx)
三、varchar和nvarchar的区别:
varchar在SQLSERVER数据库中采用单字节来存储的且非Unicode的字符数据。

Nvarchar是使用Unicode来存储数据的。

中文字符存储到SQL SERVER中会保存为两个字节(一般采用Unicode编码),正常情况下,varchar也可以存储中文字符。

即:中文字符无论是用varchar还是nvarchar类型存储存储,都是占两个字节。

英文字符保存到数据库中,如果是varchar类型,则只会占用一个字节,如果是nvarchar 类型,则占用两个字节。

如:两个字段分别有字段值:我和coffee
那么varchar字段占:2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。

如:字段值只是英文可选择varchar,而字段值存在较多的中文字符时用nvarchar。

四、SQLSERVER在导入导出时报如下错误时的解决方法:
错误 0xc00470fe: 数据流任务: 产品级别对于组件“源 - TestDB01$”(1) 而言不足
只需安装:SQL Server 2005 SP1
可选择32位系统或64位系统。

32位是X86
五、如何得知SQL Server 2005 Service Pack目前的版本是多少,
我的电脑---右键---管理---点开“服务和应用程序”
在右侧窗口中点击“SQL Server(MSSQLSERVER)”--右键--属性,弹出如下界面:
点击“高级”选项卡,打开如下界面:
(注:本资料素材和资料部分来自网络,仅供参考。

请预览后才下载,期待你的好评与关注!)。

相关文档
最新文档