如何使用相同的值填充表的所有数据行

时间:2015-01-05 03:00:11

标签: c# sql sql-server

说我有Column1和Column2。

我想用" Text1"填充Column1和Column2。和" Text2"对于一定数量的记录。

有没有办法在不循环遍历每个数据行的情况下实现这一目标?我想知道是否有任何高性能的方法来做到这一点。

现在,我正在使用:

foreach(DataRow row in dt.Rows)
{
   row["Column1"] = "Text1";
   row["Column2"] = "Text2";
}

但如果我有50k行,那么这个循环需要很长时间。有什么方法可以缩短那段时间吗?

3 个答案:

答案 0 :(得分:0)

如果您想更新一定数量的行:

update top 10 dt
    set column1 = 'text1',
        column2 = 'text2';

答案 1 :(得分:0)

您也可以使用CTE执行此操作。

;WITH CTE
     AS (SELECT TOP N *
         FROM   Yourtable
         ORDER  BY somecolumn)
UPDATE CTE
SET    column1 = 'text1',
       column2 = 'text2' 

答案 2 :(得分:0)

您可以尝试:

foreach (DataRow row in dt.Rows.Cast<DataRow>().Take(10))
{
   row["Column1"] = "Text1";
   row["Column2"] = "Text2";
}

或者您可以使用简单的for循环:

for(int i = 0; i <= 10; i++) {
  var row = rows[i]; 
}