2013-02-22 64 views
1

這樣的事情是否存在或您是否始終需要手動設置最大字段長度?自動設置爲字段長度值的SQL數據類型

我們在我們的數據庫中有一個varchar字段,其​​中值的長度可以是從0到800或更大的任何值。有沒有一種數據類型可以自動將它自己設置爲輸入值的長度?

+0

nope沒有這樣的東西 – 2013-02-22 16:42:31

+0

哈哈好吧,謝謝:) – NealR 2013-02-22 16:45:27

+0

這就是爲什麼你不能聲明一個'VARCHAR'而不指定它的大小。 – 2013-02-22 16:45:33

回答

4

這是專門爲SQL Server - 但應該適用於大多數其他RDBMS以及
您需要定義最大長 - 但需要varchar類型將永遠只能存儲儘可能多的數據。所以需要定義最大值 - 但不是實際大小 - 這是自動處理的。

所以,如果您有varchar(800)並且存儲50個字符 - 它佔用了52個字節。如果您存儲了100個字符 - 使用了102個字節(每個條目有2個字節的開銷)。

與此同時,我還是會說你應該只是定義了所有列varchar(max)(最大2 GB大小。) - 儘管它可能看起來很誘人,方便。請閱讀What's the Point of Using VARCHAR(n) Anymore?瞭解爲什麼不這樣做的一個很好的解釋。

相關問題