Un alto porcentaje de la lógica del negocio se encuentra codificada en los procedimientos almacenados o Stored Procedures
Por razones de seguridad, o por alguna otra razón, algunas veces es importante esconder la lógica del procedimiento almacenado. Existe en T-SQL una expresión para mandar a encriptar el texto del procedimiento almacenado que es WITH ENCRYPTION. Una vez que se encripta el procedimiento almacenado, no se puede obtener el texto original del mismo. Este texto debe ser copiado y guardado en un lugar seguro por el programador para su uso posterior.
No sólo el texto del procedimiento almacenado estará fuera de la posibilidad de visualizar sino también el plan de ejecución quedará fuera del alcance y la pestaña de Plan de Ejecución se mostrará deshabilitada. Veamos.
Por ejemplo, si creamos un procedimiento almacenado encriptado con la cláusula WITH ENCRYPTION y luego lo ejecutamos teniendo la opción MS SQL Sever "Actual Execution Plan" activada, En el panel de resultados no obtendremos la pestaña Execution Plan como lo veremos enseguida en el ejemplo.
El siguiente procedimiento sirve para ilustrar este comportamiento:
/* Crear SP with Encryption */
CREATE PROCEDURE
#EncriptadoSP
WITH
ENCRYPTION
AS
SELECT TOP 100 country, city, trafficcode
FROM
Office.Address
GO