Erland Sommarskog (8/5/2013)
No, that old syntax for RAISERROR (which has been deprecated since SQL 6.0 released) does not work in SQL 2012 in any compatibility mode.Ironically, SQL 2012 includes a new command ;THROW which uses almost the same syntax as the old RAISERROR syntax. (There is a third mandatory parameter for state.)
I'm not sure what the irony is here. But note that BOL suggests using THROW rather than RAISERROR for applications built in 2012 and onwards.