Motor de base de datos guarda la configuración de SET QUOTED_IDENTIFIER y SET ANSI_NULLS cuando se crea o modifica un procedimiento Transact-SQL. Estos ajustes originales se utilizan cuando se ejecuta el procedimiento. Por lo tanto, cualquier configuración de sesión de cliente para SET QUOTED_IDENTIFIER y SET ANSI_NULLS se ignora cuando se ejecuta el procedimiento.
Otras opciones de SET, como SET ARITHABORT, SET ANSI_WARNINGS o SET ANSI_PADDINGS no se guardan cuando se crea o modifica un procedimiento. Si la lógica del procedimiento depende de una configuración particular, incluya una instrucción SET al comienzo del procedimiento para garantizar la configuración adecuada. Cuando se ejecuta una instrucción SET desde un procedimiento, la configuración permanece en vigor solo hasta que el procedimiento haya terminado de ejecutarse. A continuación, la configuración se restaura al valor que tenía el procedimiento cuando se llamó. Esto permite que los clientes individuales establezcan las opciones que desean sin afectar la lógica del procedimiento.
Cualquier instrucción SET se puede especificar dentro de un procedimiento, excepto SET SHOWPLAN_TEXT y SET SHOWPLAN_ALL. Estas deben ser las únicas declaraciones en el lote. La opción SET elegida permanece vigente durante la ejecución del procedimiento y luego vuelve a su configuración anterior.