MSSQL命令行导入导出数据操作指南(mssql 命令行导数据)

## MSSQL 命令行导入导出数据操作指南

MSSQL 是一种关系型数据库管理系统,它提供了丰富的功能,将数据转化为自所需要的图或报表,有助于我们更好地分析数据。本文主要介绍MSSQL 命令行导入导出数据的操作指南,以供大家参考。

### 一、导入数据

在 Microsoft SQL Server 中导入数据时,首先需要执行以下步骤:

1. 使用 BCP 命令行参数进行操作。

2. 使用 SELECT INTO 操作从现有表中复制数据。

3. 使用 BULK INSERT 语句将文件中的数据加载到表中。

下面分别介绍它们的具体使用步骤:

**BCP**

BCP 是一个命令行程序,用于从系统文件/文件系统中将数据导入/导出至 Microsoft SQL Server 数据库。

导入数据主要步骤:

(1)检查输入文件的的格式,是否符合标准格式;

(2)创建一个新的表或在现存表中添加字段;

(3)在 DataBase 中打开 DOS,然后运行 BCP 命令语句;

(4)完成之后,检查数据是否正确导入;

(5)关闭打开的DOS窗口。

例如:

“`shell

$ bcp MyTable in ‘C:\data\mydata.csv’ -S MyServer -U sa -P Passw0rd -c -t,


**SELECT INTO**

SELECT INTO 语句用来从现有表中复制数据,语法如下:

SELECT [ ALL | DISTINCT ] select_expression [ INTO new_table_name ]

[ FROM source [ WHERE where_condition ] ]

[ GROUP BY group_by_expression ]

[ HAVING having_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ];


其中 `new_table_name` 是将要在数据库中创建的新表,`source` 是现有表名称,`where_condition` 限定了从现有表中复制数据记录的条件。

例如:创建一个新表 `NewTable` 并从 `ExistTable` 表中复制所有数据

```shell
SELECT * INTO NewTable FROM ExistTable
```

**BULK INSERT**

BULK INSERT 语句用来从文件加载数据到表中,语法如下:

BULK INSERT destination_table [

[ FROM [ { BULK | TAPE } ] ]

‘file_name’

[ WITH [ ( [ [ BATCHSIZE = batch_size ]

[ [ , ] TABLOCK ]

[ [ , ] [ CHECK_CONSTRAINTS ]

[ [ , ] FIRE_TRIGGERS ]

[ [ , ] KEEPIDENTITY ]

[ [ , ] KEEPNULLS ]

[ [ , ] ORDER ( { { column [ ASC | DESC ] }

[ ,…n ] ) ]

[ [ , ] ROWS_PER_BATCH = rows_per_batch ]

[ [ , ] ROWTERMINATOR = ‘string’ ]

[ [ , ] TABLOCK ]

[ [ , ] ERRORFILE = ‘file_name’ ]

[ [ , ] MAXERRORS = maximum_errors ]

[ [ , ] [ IGNORE_CONSTRAINTS | IGNORE_TRIGGERS ]

[ [ , ] [ IGNORE_DUP_KEY ]

[ [ , ] [ KEEP_NULLS ]

[ [ , ] [ KILOBYTES_PER_BATCH = kilobytes_per_batch ]

[ [ , ] [ ROWS_PER_BATCH = rows_per_batch ]

[ [ , ] [ ORDER ( { { column [ ASC | DESC ] }

[ ,…n ] ) ]

[ [ , ] [ ROWTERMINATOR = ‘string’ ]

]

[ WITH ( [ CODEPAGE = { ‘ACP’ | ‘OEM’ | ‘RAW’ | ‘code_page’ } ]

[ [ , ] [ DATAFILETYPE =

{ ‘char’ | ‘native’ | ‘widechar’ | ‘widenative’ } ]

]

]


其中 `destination_table` 是将要加载数据的表名称,`file_name` 是文件名, `batch_size` 指定了每次处理文件中的数据量。

例如:从 `C:\mydata.csv` 文件中加载所有数据到 `MyTable` 表中

```shell
BULK INSERT MyTable FROM 'C:\mydata.csv' WITH (FIELDTERMINATOR = ',');

### 二、导出数据

MSSQL 命令行导出数据也有多种方法,主要有 BCP 和 SELECT INTO 语句。

**BCP**

BCP 命令行参数可以用来从 SQL Server 数据库中将数据导出/导入,主要步骤:

1. 检查输出文件的格式是否符合标准格式;

2. 打开数据库的DOS,然后运行BCP命令语句;

3. 根据情况配置参数;

4. 完成之后,检查数据是否正确导出;

5. 关闭打开的DOS窗口。


数据运维技术 » MSSQL命令行导入导出数据操作指南(mssql 命令行导数据)