2009-06-10 9 views

Antwort

223

In diesem Fall verwenden Sie -1.

+6

Siehe auch MSDN-Dokumentation: http: // msdn .microsoft.com/de-us/library/bb399384.aspx –

+4

Gibt es einen Leistungsnachteil bei der Einstellung aller Parameterlängen auf -1, so dass ich keine db-Abgleichsliste pflegen muss? –

+1

Varchar (max) wird für Werte unter 8000 Bytes identisch mit varchar (8000) behandelt. Bei größeren Werten wird das Feld als ein "Text" -Feld (auch als "CLOB" bezeichnet) behandelt. Dies kann sich auf die Abfrageplanoptimierung und die Effizienz beim Abrufen von Zeilen mit größeren Werten in dieser Spalte auswirken, da die Daten "out-of-row" gespeichert werden und eine zusätzliche Suche erfordern. – KeithS

40

Für diejenigen von uns, nicht von Michal Chaniewski, die vollständige Codezeile sehen -1 hat:

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

Die maximale SqlDbType.VarChar Größe 2147483647

ist Wenn Sie eine generische verwenden würden Oledb Verbindung anstelle von SQL, fand ich here gibt es auch einen Datentyp LongVarChar. Seine maximale Größe ist 2147483647.

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

Sie brauchen nicht die Größe Parameter zu übergeben, nur erklären Varchar schon verstehen, dass es MAX wie:

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