📅  最后修改于: 2023-12-03 14:49:46.861000             🧑  作者: Mango
在SQL Server中,我们可以使用OPENROWSET或BULK INSERT命令来读取文本文件。这两个命令都可以让我们将文本文件的内容导入到SQL Server表中。
OPENROWSET命令可以让我们打开与SQL Server实例无关的数据源,并可以从该数据源中选择数据。以下是使用OPENROWSET命令从文本文件中读取数据的步骤:
创建一个格式文件以映射文件中的数据到表中的列。格式文件可以手动创建,但最好的方法是使用bcp命令创建格式文件。例如,以下命令可以为逗号分隔符的文本文件mydata.txt创建格式文件mydata.fmt:
bcp mydatabase..mytable format nul -c -f mydata.fmt -t,
创建一个表来存储从文本文件中读取的数据。表应该包含与格式文件中指定的列相同的列。
使用OPENROWSET命令从文本文件中选择数据并将其插入到表中:
INSERT INTO mytable
SELECT * FROM OPENROWSET(
BULK 'C:\path\to\mydata.txt',
FORMATFILE = 'C:\path\to\mydata.fmt'
) AS rows;
此代码将从文件mydata.txt中读取数据,并使用格式文件mydata.fmt将数据插入到mytable表中。
BULK INSERT命令可以让我们将文本文件的内容直接插入到表中。以下是使用BULK INSERT命令从文本文件中读取数据的步骤:
创建一个表来存储从文本文件中读取的数据。表应该包含与文件中的列相同的列。
使用BULK INSERT命令从文本文件中选择数据并将其插入到表中。例如,以下命令可以将逗号分隔符的文本文件mydata.txt中的数据插入到mytable表中:
BULK INSERT mytable
FROM 'C:\path\to\mydata.txt'
WITH (
FORMAT = 'CSV',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
在上面的命令中,FORMAT选项指定文件格式为CSV(逗号分隔符),FIELDTERMINATOR选项指定字段分隔符为逗号,ROWTERMINATOR选项指定行分隔符为换行符。
以上是使用 SQL Server 读取文本文件的两个方法,您可以根据自己的需要选择其中的一种,进行适当的更改并应用在您的代码中。