SQL Server导入导出服务

u 案例需求

用户可以使用导入和导出向导将SQL Server数据导出到TXT文件中

u 知识提示

SQL Server 2008的导入导出服务可以实现不同类型的数据库系统的数据转换。为了让用户可以更直观的使用导入导出服务,微软提供了导入导出向导。导入和导出向导提供了一种从源向目标复制数据的最简便的方法,可以在多种常用数据格式之间转换数据,还可以创建目标数据库和插入表。

可以向下列源中复制数据或从其中复制数据:SQL Server、文本文件、Access、

Excel、其他 OLE DB 访问接口。

这些数据源既可用作源,又可用作目标。还可将 ADO.NET 访问接口用作源。指定源和目标后,便可选择要导入或导出的数据。 可以根据源和目标类型,设置不同的向导选项。例如,如果在 SQL Server 数据库之间复制数据,则指定要从中复制数据的表,或提供用来选择数据的 SQL 语句。

和所有向导一样,这个向导以提问的方式一次一步地帮助完成整个过程。

案例:某公司需要把Myshool数据库中的student表数据导入到一个文本文件student.txt中,用以电邮给人事部门经理。

具体操作步骤如下。

(1)打开SQL Server Management Studio,在对象资源管理器中,展开“SQL Server 实例”→“数据库”→“MySchool”节点,单击鼠标右键,选择“任务”→“导出数据”命令。

(2)出现导入和导出向导的欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框,如图4.1所示。

SQL Server导入导出服务_用户

图4.1 选择数据源

(3)在“选择数据源”对话框中设置如下选项:

? 数据源:SQL Native Client 10.0。

? 服务器名称:DC。

? 身份验证:Windows身份验证。

? 数据库:MySchool。

(4)单击“下一步”按钮,出现“选择目标”对话框,设置如下选项(如图4.2所示):

? 目标:平面文件目标。

? 文件名:C:\student.txt。

? 格式:带分隔符。

SQL Server导入导出服务_数据库系统_02

图4.2 选择目标

(5)单击“下一步”按钮,出现“指定表复制或查询”对话框,如图4.3所示。

SQL Server导入导出服务_微软_03

图4.3 指定表复制或查询

(6)在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮,出现“配置平面文件目标”对话框,如图4.4所示。

SQL Server导入导出服务_数据库系统_04

图4.4 配置平面文件目标

设置源表或源视图为MySchool.dbo.student,单击“下一步”按钮。

(7)在“保存并执行包”对话框中选中“立即执行”复选框,如图4.5所示,然后单击“下一步”按钮。

SQL Server导入导出服务_知识_05

图4.5 保存并执行包

(8)在如图4.6所示的对话框中单击“完成”按钮。

SQL Server导入导出服务_数据库系统_06

图4.6 完成该向导

(9)如图4.7所示,当执行完后,单击“关闭”按钮。

SQL Server导入导出服务_微软_07

图4.7 执行成功

(10)在Windows资源管理器中打开C:\student.txt文件,验证导出的结果。

Excel数据导入到SQL Server

用户即可以在SQL Server Management Studio中使用导入和导出向导导出数据,也可以用此方法来导入数据。

案例需求:Benet公司需要将原来保存在Excel文件Customer.xls中的客户信息数据导入到SQL Server的Customer表中。具体步骤如下:

(1)打开SQL Server Management Studio,在对象资源管理器中,展开“SQL Server 实例”→“数据库”→“Benet”节点,单击鼠标右键,选择“任务”→“导入数据”命令。

(2)出现欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框。

(3)在“选择数据源”对话框中设置如下选项(如图4.8所示):

SQL Server导入导出服务_知识_08

图4.8 选择数据源

? 数据源:Microsoft Excel。

? Excel文件路径:C:\temp\Customer.xls。

? 版本:Microsoft Excel 97-2005。

(4)单击“下一步”按钮,出现“选择目标”对话框,设置如下选项:

? 目标:SQL Native Client。

? 服务器名称:TESTSQL。

? 身份验证:Windows身份验证。

? 数据库:Benet。

(5)单击“下一步”按钮,出现“指定表复制或查询”对话框。

(6)在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮。

(7)出现“选择源表和源视图”对话框,设置如下选项,如图4.9所示,然后单击“下一步”按钮。

? 源:Cumtomer。

? 目标:Benet.dbo.Customer。

SQL Server导入导出服务_知识_09

图4.9 选择源表和源视图

(8)在“保存并执行包”对话框中选中“立即执行”复选框,然后单击“下一步” 按钮。

(9)在如图4.10所示的对话框中单击“完成”按钮。

(10)当执行完后,单击“关闭”按钮。

SQL Server导入导出服务_数据库系统_10

图4.10 完成该向导

(11)在对象资源管理器中打开Benet.dbo.Customer表,验证导入的结果。

在不同的SQL Server之间转换数据

用户还可以使用导入和导出向导在不同SQL Server服务器之间转换数据。

案例需求:某公司的管理员需要将SQL Server服务器KKK1上的Benet数据库导出到另一台开发测试用的SQL Server服务器TESTSQL上,并新建一个数据库为BenetIMP。具体步骤如下:

(1)打开SQL Server Management Studio,在对象资源管理器中,展开“SQL Server 实例”→“数据库”→“Benet”节点,单击鼠标右键,选择“任务”→“导出数据”命令。

(2)出现欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框,在该对话框中设置如下选项:

? 数据源:SQL Native Client。

? 服务器名称:KKK1。

? 身份验证:Windows身份验证。

? 数据库:Benet。

(3)单击“下一步”按钮,出现“选择目标”对话框,设置如下选项:

? 目标:SQL Native Client。

? 服务器名称:TESTSQL。

? 身份验证:Windows身份验证。

? 数据库:单击“新建”按钮,在“名称”项中输入:BenetIMP,单击“确定”按钮。

(4)单击“下一步”按钮,出现“指定表复制或查询”对话框。

(5)在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮。

(6)出现“选择源表和源视图”对话框,勾选左上角“全选”复选框,然后单击“下一步”按钮。

(7)在“保存并执行包”对话框中选中“立即执行”复选框,然后单击“下一步”按钮。

(8)在“完成该向导”对话框中单击“完成”按钮。

(9)当执行完后,单击“关闭”按钮。

(10)连接TESTSQL实例,在SQL Server Management Studio的对象资源管理器中打开Benetimp数据库的dbo.customer表,验证导入的结果。