41

What data type should I use to store HTML content in SQL Server 2008?

It's for dynamic content for a CMS.

3 Answers 3

55

VARCHAR(MAX) if it's all going to be ascii-based, say for basic HTML tepmplates

NVARCHAR(MAX) if the HTML could contain any content

NVARCHAR will double your storage use as it uses double the amount of space as VARCHAR. HTML itself does not require NVARCHAR, only the content in-between the HTML tags could based on the language, etc..

Edit:

Many years on from giving this answer I almost always use NVARCHAR now if there is any between the tag content. Unicode is popular...

I only use VARCHAR if just storing simple html templates, eg tags and placeholders
eg: <div><span>[PLACEHOLDER]</span><div>

Make the call based on your use-case..

Sign up to request clarification or add additional context in comments.

6 Comments

Ah - no. That is a good question, but standard HTML would require that content "basd on language" to encode special chars ;) No unicode in HTML, sorry. Normal Ascii set only.
Damn, and I've been storing HTML in VARCHAR all these years.. ;-)
Because HTML has only ascii characters, as I say. All special langauge characers must be encoded ;) So, the db only sees ASCII.... OR it is not HTML ;)
According to the Wikipedia article Unicode and HTML the HTML standard extended the document character set from ISO-8859-1 to ISO 10646 and asserts (parenthetically) that that character set "... is basically equivalent to Unicode".
Upvote @KennyEvitt, so the type needs to be NVarChar unless you will only store HTML documents with a "external character encoding" or "charset" which is a sub set of ASCII. In the later case, all graphemes represented in the document will be ASCII characters so VarChar will be safe.
|
16

Put it in an NVARCHAR(MAX) (or smaller).
HTML is no different from other text.

2 Comments

Can you please explain why it depends on the language? Is it related to Unicode?
@KushanRandima: What are you talking about?
0

Data type should I use to store HTML content in SQL Server 2008

You must used Nvarchar(Max) if you want to store multiple language text.

otherwise use VARCHAR(MAX) if you want to store English language text.

nvarchar(max) contain more amount of spance compare to varchar(max)

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.