anchor.diff:      ;
   
   // https://msdn.microsoft.com/en-us/library/ms187926(v=sql.120).aspx
  -create_alter_procedure
  +create_or_alter_procedure
       : (CREATE | ALTER) proc=(PROC | PROCEDURE) func_proc_name (';' DECIMAL)?
         ('('? procedure_param (',' procedure_param)* ')'?)?
         (WITH procedure_option (',' procedure_option)*)?
  
positive.code:     ;
      
  //https://msdn.microsoft.com/en-us/library/ms186755.aspx
  create_alter_function
      : (CREATE | ALTER) FUNCTION func_proc_name
          (('(' procedure_param (',' procedure_param)* ')') | '(' ')') //must have (), but can be empty
          (funcBody_returns_select | funcBody_returns_table | funcBody_returns_scalar) ';'?
  
negative.code:     :
      create_database
      | create_index
      | create_or_alter_procedure
      | create_or_alter_function
      | create_statistics
      | create_table
      | create_type
  