Cómo insertar una columna con un valor específico en copia masiva de sql

c# sqlbulkcopy sql-server-2008

Pregunta

Estoy rellenando una tabla con los valores en Excel usando una copia masiva de SQL en c #.

DataTable dt = new DataTable();

string line = null;
int i = 0;

using (StreamReader sr = File.OpenText(@"c:\temp\table1.csv"))
{  
      while ((line = sr.ReadLine()) != null)
      {
            string[] data = line.Split(',');
            if (data.Length > 0)
            {
                  if (i == 0)
                  {
                  foreach (var item in data)
                  {
                        dt.Columns.Add(new DataColumn());
                  }
                  i++;
             }
             DataRow row = dt.NewRow();
             row.ItemArray = data;
             dt.Rows.Add(row);
             }
      }
}


using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsoleApplication3.Properties.Settings.daasConnectionString"].ConnectionString))
{
      cn.Open();
      using (SqlBulkCopy copy = new SqlBulkCopy(cn))
      {
            copy.ColumnMappings.Add(0, 0);
            copy.ColumnMappings.Add(1, 1);
            copy.ColumnMappings.Add(2, 2);
            copy.ColumnMappings.Add(3, 3);
            copy.ColumnMappings.Add(4, 4);
            copy.DestinationTableName = "Censis";
            copy.WriteToServer(dt);
      }
} 

En el código anterior, estoy insertando los registros de Excel en la tabla. Pero, tengo una columna más "ProcessID" en la tabla Censis. Para cada ejecución de tiempo, necesito generar un GUID y llenar esta columna con esto.

¿Puede alguien ayudarme a rellenar la columna ProcessID cuando hago una copia masiva como antes con un GUID generado para todas las filas para esa ejecución?

Respuesta popular

Cuando haga su inserción en la base de datos, use la función newsequentialid



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué