我有一个表,每行包含150列,所以我需要插入150个值。
我知道插入3列的方法是这样的:
$query="INSERT INTO table_name
(data1,data2,data3)
VALUES
('data_part_1', 'data_part_2', 'data_part_3')";
但如果我必须插入150个值,那就是:
$query="INSERT INTO table_name
(data1,data2,data3,...,data150)
VALUES
('data_part_1', 'data_part_2', 'data_part_3',...,'data_part_150')";
这需要很多时间。
如何更有效地完成工作?
由于
答案 0 :(得分:1)
当你说它需要花费很多时间时,我想你要说你需要花费太多时间在查询中写出150个变量而不是计算时间(因为150个变量不需要那么长时间)。如果是这种情况,写这个的最好方法是将列名放在一个数组中,将数据(或者你称之为data_parts)放在另一个数组中并使用for循环。
public static Int64 GetSynchronizationVersion(string connString)
{
Int64 synchronizationVersion = 0;
string sql =
"SELECT Convert(BigInt,CHANGE_TRACKING_CURRENT_VERSION());";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
//This query has no parameters.
try
{
conn.Open();
synchronizationVersion = (Int64)cmd.ExecuteScalar();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return synchronizationVersion;
}
旁注:表中有150列不是设计数据库的最佳方法。您可能想要考虑将其重新创建到多个表中。