如何将数据从 SQL Server 导出到 SSIS 中的平面文件?
在本文中,我们将学习如何在 SSIS 中将数据从 SQL Server 导出到平面文件。为此,我们将创建一个包以从 SQL Server 数据库中选择数据并将 SQL Server 表数据导出到本地驱动器中的平面文件。
先决条件:
- 确保安装了 Visual Studio 2019。
- 确保安装了 SQL Server Management Studio。
- 创建一个表,并在 SQL 服务器中插入一些数据,如下所示。
创建表和添加数据:
使用以下查询创建一个名为“Employee”的示例表:
CREATE TABLE EMPLOYEE
(
EmpCode INT,
EmpFName VARCHAR(15),
EmpLName VARCHAR(15),
Job VARCHAR(45),
Manager CHAR(4),
HireDate DATE,
Salary INT,
Commission INT,
DEPTCODE INT
);
现在您可以使用以下查询将数据添加到上面创建的 Employee 表中:
INSERT INTO EMPLOYEE
VALUES (1, 'ROB', 'STARK', 'SOFTWARE ENGINEER', 7902, '2012-12-17',20),
(2, 'JON', 'SNOW', 'SALESMAN', 7698, '2014-02-20', 30),
(3, 'SANSA', 'STARK', 'MANAGER', 7839, '2011-04-02', 20),
(4, 'CATEYLN', 'STARK', 'SALESMAN', 7698, '2010-09-28', 30),
(5, 'ARYA', 'STARK', 'MANAGER', 7839, '2013-06-09', 10),
(6, 'PAUL', 'SMITH', 'ANALYST', 7566, '2015-12-09',20),
(7, 'ALFRED', 'KINSLEY', 'PRESIDENT', 7566, '2017-11-17',10),
(8, 'ARNOLD', 'TIMOTHY', 'SALESMAN', 7698, '2019-09-08',30),
(9, 'RAMIN', 'ASGHAR', 'SOFTWARE ENGINEER', 7788, '2020-01-12',20),
(10, 'LUCY', 'FULLER', 'TECHNICAL LEAD', 7698, '2018-12-03', 20),
(11, 'STEVE', 'FAULKNER', 'ANAYLYST', 7566, '2012-12-03',10),
(12, 'KAREN', 'ROGERS', 'SOFTWARE ENGINEER', 7782, '2010-01-23',20),
(13, 'BRUCE', 'LEE', 'SALESMAN', 7698, '2001-02-22',30),
(14, 'NEIL', 'SWAN', 'MANAGER', 7839, '2005-05-01',30),
(15, 'ATHENA', 'WILLIAMS', 'ANALYST', 7839, '2003-06-21',50),
(16, 'MATHEW', 'HUETTE', 'ANALYST', 7839, '2006-07-01', 50);
现在让我们进入重要的部分。
创建 SSIS 包:
按照以下步骤创建 SSIS 包:
步骤 1:将数据流任务从工具箱拖放到控制流区域。添加一个您选择的名称。
步骤 2:双击数据流任务。这会将我们重定向到一个称为数据流的新窗口,其目的是将数据从源加载到目标。从工具箱菜单中拖放 OLEDB 源和平面文件目标。
为源添加配置:
按照以下步骤配置源:
- 双击 OLEDB 源会弹出一个菜单。在连接管理器中输入数据库服务器名称,然后选择包含数据的表。
- 选择以下选项后,我们可以转到“列”选项。我们可以确保列是否正确加载,单击下面的 Ok 选项。
- 连接 OLEDB 源和平面文件目标,如下所示。
为目的地添加配置:
请按照以下步骤配置目的地:
- 双击 Flat File Destination 会弹出一个菜单。选择如下图:
- 在路径中创建一个文本文件以查看处理后的数据。现在在窗口中配置文本文件的路径。
- 验证映射选项确保它与下面相同,然后单击确定继续。
第 3 步:我们现在可以使用主菜单中的运行选项运行包。当我们按下“开始”按钮时,程序包将开始运行,您可以查看 SSIS 程序包的状态。
第 4 步:验证文本文件中的输出。单击我们之前创建的文本文件,您可以查看以下数据。
应用:
这可以有广泛的应用,例如:
- 用于归档过程的自动化。
- 在 SQL 作业的帮助下将报告发送到电子邮件。