2009-06-10 20 views

Respuesta

223

En este caso, usted usa -1.

+6

Véase también documentación de MSDN: http: // MSDN .microsoft.com/es-us/library/bb399384.aspx –

+4

¿Hay algún inconveniente en el rendimiento para establecer todas las longitudes de parámetros en -1, por lo que no es necesario mantener una lista de coincidencia de db? –

+1

Varchar (max) se trata de forma idéntica a varchar (8000) para valores inferiores a 8000 bytes. Para valores más grandes, el campo se trata como un campo de "texto" (también conocido como "CLOB"). Esto puede afectar la optimización del plan de consulta y la eficacia de recuperar filas con valores más grandes en esta columna, ya que los datos se almacenan "fuera de la fila" y requieren una búsqueda adicional. – KeithS

40

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

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

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

Si desea utilizar un genérico conexión oledb en lugar de sql, encontré here también hay un tipo de datos LongVarChar. Su tamaño máximo es 2147483647.

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

No es necesario pasar el parámetro de tamaño, simplemente declarar Varchar ya se entiende que es MAX como:

cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text"; 
Cuestiones relacionadas