Normalmente mi columna de tamaño a la hora de crear un parámetro en ADO.NET

Pero ¿de qué tamaño debo utilizar si la columna es VARCHAR(MAX)?

cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
InformationsquelleAutor mrblah | 2009-06-10

4 Comentarios

  1. 268

    En este caso, utilice -1.

    • Véase también MSDN docs: msdn.microsoft.com/en-us/library/bb399384.aspx
    • hay alguna rendimiento inconveniente para establecer todos los parámetros de longitudes de a -1, por lo que no tiene que mantener una base de datos de coincidencia de la lista?
    • Varchar(max) es tratada de forma idéntica a varchar(8000) para los valores de menos de 8000 bytes. Para valores mayores que el campo es tratado como un campo «texto» (también conocido como un «CLOB»). Esto puede afectar a consulta el plan de optimización y la eficiencia de la recuperación de las filas con los mayores valores en esta columna, como se almacenan los datos de «fuera de línea», que requieren un extra de búsqueda.
    • El uso de tipo nvarchar(max) en sql y definir la longitud -1, SqlDbType.NVarchar en c#
  2. 47

    Para aquellos de nosotros que no vea -1 por Michal Chaniewski, la completa línea de código:

    cmd.Parameters.Add("@blah",SqlDbType.VarChar,-1).Value = "some large text";
  3. 3

    El máximo SqlDbType.VarChar tamaño es 2147483647.

    Si usted podría usar un genérico conexión oledb en lugar de sql, he encontrado aquí también hay un LongVarChar tipo de datos. Su tamaño máximo es 2147483647.

    cmd.Parameters.Add("@blah", OleDbType.LongVarChar, -1).Value = "very big string";
  4. 2

    Usted no tiene que pasar el parámetro de tamaño, acaba de declarar Varchar entiende ya que es MAX como:

    cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";
    • Esto puede tener efectos negativos en su SQL server debido a cómo el Plan de Ejecución se calcula.

Dejar respuesta

Please enter your comment!
Please enter your name here