语法错误定义BULK INSERT参数
问题描述:
在下面的C#代码时:语法错误定义BULK INSERT参数
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
的路径。你会看到在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);
我不需要FIELDTERMINATOR,因为它只有一个列数据,并且谢谢你做到了! – user1590636 2013-03-28 00:21:36