anchor.diff:  
   // https://msdn.microsoft.com/en-us/library/ms190290.aspx
   drop_function
  -    : DROP FUNCTION (IF EXISTS)? func_proc_name (',' func_proc_name)* ';'?
  +    : DROP FUNCTION (IF EXISTS)? func_proc_name_two_part (',' func_proc_name_two_part)* ';'?
       ;
   
   // https://msdn.microsoft.com/en-us/library/ms175075.aspx
  
positive.code: 
  // https://msdn.microsoft.com/en-us/library/ms187926(v=sql.120).aspx
  create_or_alter_procedure
      : ((CREATE (OR ALTER)?) | ALTER) proc=(PROC | PROCEDURE) func_proc_name (';' DECIMAL)?
        ('('? procedure_param (',' procedure_param)* ')'?)?
        (WITH procedure_option (',' procedure_option)*)?
        (FOR REPLICATION)? AS sql_clauses
  
negative.code:            (
               (
                (STATUS EQUAL (ON | OFF) COMMA? )?
                (PROCEDURE_NAME EQUAL func_proc_name_three_part COMMA?)?
                (MAX_QUEUE_READERS EQUAL max_readers=DECIMAL COMMA?)?
                (EXECUTE AS (SELF | user_name=STRING | OWNER) COMMA?)?
               )
  