anchor.diff:  
   // https://msdn.microsoft.com/en-us/library/ms186755.aspx
   create_or_alter_function
  -    : ((CREATE (OR ALTER)?) | ALTER) FUNCTION func_proc_name
  +    : ((CREATE (OR ALTER)?) | ALTER) FUNCTION func_proc_name_two_part
           (('(' procedure_param (',' procedure_param)* ')') | '(' ')') //must have (), but can be empty
           (func_body_returns_select | func_body_returns_table | func_body_returns_scalar) ';'?
       ;
  
positive.code:     : (schema=id '.')? name=id
      ;
  
  func_proc_name
      : ((schema=id) '.')? procedure=id
      ;
  
  ddl_object
  
negative.code: 
  // https://msdn.microsoft.com/en-us/library/ms174969.aspx
  drop_procedure
      : DROP proc=(PROC | PROCEDURE) (IF EXISTS)? func_proc_name_two_part (',' func_proc_name_two_part)* ';'?
      ;
  
  // https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-trigger-transact-sql
  