You can hide the implementation details of your stored procedures from end users of the application using WITH ENCRYPTION option. ENCRYPTION indicates that SQL Server encrypts the syscomments table entry containing the text of the CREATE PROCEDURE statement. The WITH ENCRYPTION clause hides the text of a stored procedure from users. During an upgrade, SQL Server uses the encrypted comments stored in syscomments to re-create encrypted procedures.
Here is an example that creates an encrypted stored procedure:
/* Stored Procedure to insert a new record in the Sample Table */CREATE PROCEDURE sp_AddRecordToSampleTable @SampleIdNo int,@SampleName VARCHAR(20),@SampleDesc VARCHAR(200)WITH ENCRYPTIONAS BEGIN/* Add record into the table using the values given by the user*/INSERT INTO SampleTable(SampleIdNo, SampleName, SampleDesc) VALUES(@SampleIdNo, @SampleName, @SampleDesc)ENDgo
If the user tries to use system stored procedure sp_helptext to view the text of an encrypted stored procedure directly from the syscomments table then SQL Server gives a message: “The object comments have been encrypted.”