SQL Server: ¿Por qué debería agregar "; 1" al final del nombre de un procedimiento almacenado?

Me encontré con un problema de compatibilidad hoy, cuando un cliente actualizó de Windows XP a Windows 7.

El (código de 12 años) está llamando a un procedimiento almacenado en el SQL Server llamado

ai_nextid

Excepto que cuando llama al procedimiento almacenado está usando el nombre:

ai_nextid;1

Sí, con un ";1"anexado. Aparentemente, el controlador de SQL Server en Windows 95, Windows 2000, Windows XP y posiblemente Windows Vista, están bien con estoespecíficamente Sufijo agregado. Pero el controlador ODBC de SQL Server en Windows 7 es diferente y causa el error:

Error general de SQL.
[Microsoft] [Controlador ODBC SQL] [SQL Server] No se pudo encontrar el procedimiento almacenado 'ai_nextid; 1'.
[Microsoft] [ODBC SQL Driver] [SQL Server] Variable indicadora requerida pero no suministrada '.

Con error nativo2812.

Esto trae 4 preguntas:

¿Por qué estábamos agregando;1 hasta el final del nombre del procedimiento almacenado? (¿Qué logra?)¿Por qué el controlador de SQL Server lo ignoraba?¿Por qué se realizó un cambio radical en Windows 7?¿Está documentado el cambio de compatibilidad de última hora?

Las dos últimas preguntas probablemente serían las mismas, ya que si lo documentan, lo justificarían.

Respuestas a la pregunta(3)

Su respuesta a la pregunta