title: Understanding COMPATIBILITY_LEVEL in SQL Server
body: <p>I understood that setting a database to a COMPATIBILITY_LEVEL prior to your native one prevented features from being used. However this doesn't seem to be the case. Witness the following SQL script:</p>
  
  <pre><code>CREATE DATABASE Foo
  GO
  USE Foo
  GO
  ALTER DATABASE Foo SET COMPATIBILITY_LEVEL = 80
  GO
  
  CREATE TABLE Bar
  (
      Id UNIQUEIDENTIFIER NOT NULL,
      TestNvcMax NVARCHAR (MAX) NOT NULL, -- Arrived in SQL 2005
      TestDateTime2 DATETIME2 (7) NOT NULL -- Arrived in SQL 2008
  )
  GO
  </code></pre>
  
  <p>But this table creates perfectly - any ideas? I would have thought some kind of an error message or warning would have been appropriate</p>