您好我使用参数化查询将单行插入表格。
string commandText = @"INSERT INTO [DATA].[Jack].[Built] VALUES(
@utcDT,
@Symbol,
@Type,
@Value,
@Size,
@Mid,
@Spread,
@Date,
@SeqNumber)";
var insertCommand = new SqlCommand(commandText);
insertCommand.Parameters.Add("@utcDT", SqlDbType.DateTime2);
insertCommand.Parameters.Add("@Symbol", SqlDbType.NVarChar);
insertCommand.Parameters.Add("@Type", SqlDbType.NVarChar);
insertCommand.Parameters.Add("@Value", SqlDbType.Float);
insertCommand.Parameters.Add("@Size", SqlDbType.Int);
insertCommand.Parameters.Add("@Mid", SqlDbType.Float);
insertCommand.Parameters.Add("@Spread", SqlDbType.Float);
insertCommand.Parameters.Add("@Date", SqlDbType.Date);
insertCommand.Parameters.Add("@SeqNumber", SqlDbType.BigInt);
然后调用insert:
insertCommand.Parameters["@utcDT"].Value = utcDT;
insertCommand.Parameters["@Symbol"].Value = symbol;
insertCommand.Parameters["@Type"].Value = type;
insertCommand.Parameters["@Value"].Value = value;
insertCommand.Parameters["@Size"].Value = size;
insertCommand.Parameters["@Mid"].Value = current.Mid();
insertCommand.Parameters["@Spread"].Value = current.Spread();
insertCommand.Parameters["@Date"].Value = utcDT.Date;
insertCommand.Parameters["@SeqNumber"].Value = fullSeqNumber;
insertCommand.ExecuteNonQuery();
但是,有时我想一次插入数百万行,这是我从表中使用SqlBulkCopy。这很简洁。
但我需要先创建一个表,再次指定所有列和类型。
必须同时指定这些东西可能容易出错。有没有办法使用数据表WITHOUT SqlBulkCopy有效地插入单行?