• Jeff Moden (5/10/2013)


    I understand what the semi-colon can do so far as ending a statement but it worked just fine before without it before.

    Increasing complexity of the language. SQL is not an LLR-1 language as it is and hence is not that easy to write a parser for, on that jandles all constructs. As more and more gets added, so the parser has to get more and more and more complex. Statement terminators are a definitive way to tell the parser that a statement has finished and another one is about to start.

    You said earlier that the parser can always tell if a semi-colon is needed, but it actually can't. Get the WITH wrong in a query that has hints and you get an error saying that a semicolon is required when it isn't. That's a default error for 'Can't figure this out, there's a WITH keyword, maybe they left out a ;' With C++, leaving out a semicolon got you 20 or more errors that never once mentioned a missing semicolon that would start on the line following the missing ;

    I don't know what your formatting convention is but I don't need a semi-colon at the end of even the longest of queries to tell me that a new query has started whether the code has any comments or not.

    Semicolons aren't for you.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass