定义BULK INSERT参数时出现语法错误

本文关键字:语法 错误 BULK INSERT 参数 定义 | 更新日期: 2023-09-27 18:06:27

在以下c#代码中:

string filePath = @"C:'Users'Me'Documents'note.txt"
var SqlSaveCommand = new SqlCommand(@"BULK INSERT table FROM @filepath", con);
SqlSaveCommand.Parameters.Add(new SqlParameter("@filepath", filePath));

在执行sql命令时,我在@filepath附近得到语法错误。

然而,下面的操作可以正常工作:

BULK INSERT proxylist FROM 'C:'Users'Me'Documents'note.txt'

我在指定@filepath参数时做错了什么?

定义BULK INSERT参数时出现语法错误

不能参数化BULK INSERT的路径。如果输入

,在Management Studio中也会看到同样的错误
BULK INSERT dbo.tablename FROM @wherever...

通常你还需要一些WITH选项,例如指定ROWTERMINATOR, FIELDTERMINATOR等。

为什么不在你的程序中构建整个命令呢?

string filePath = @"C:'Users'Me'Documents'note.txt"
string cmd = @"BULK INSERT proxylist FROM '" + @filepath + "';";
var SqlSaveCommand = new SqlCommand(cmd, con);