A stored
procedure (SP) is a precompiled set of T-SQL statements, the basic
purpose of which is to group T-SQL statements together to perform a
task or set of multiple tasks. It is stored in the data dictionary,
and can be executed either from the SQL Server Management Studio or
from within an application as required.
Stored
procedures can execute batches of T-SQL statements, and return
multiple result sets as well. It can accept input parameters and can
return one or more output parameters to the calling procedure or
batch. A stored procedure can call other stored procedures and can
also return status information to the calling procedure to indicate
whether they succeeded or failed.
Benefits
of a Stored Procedure
- Modular Programming – After a Stored Procedure is created, it can be invoked multiple times from multiple places from any application. If any modification is needed in the SP, it needs to be done only at one place. It increases code reusability.
- Improved Performance – Stored Procedures executes the code faster and reduces the network traffic.Faster execution – Stored procedures are precompiled i.e; parsed and optimized as soon as they are created and are stored in memory. Thus it executes a lot faster than sending many lines of SQL code from your application to the SQL Server. Doing that requires SQL Server to compile and optimize your SQL code every time it runs.Reduced network traffic – Sending many lines of SQL code from an application over the network to SQL Server, impacts network performance. This is especially true if the SQL code is lengthy and is accessed frequently in the application. Running the code on the SQL Server (as a Stored Procedure) eliminates the need to send this code over the network. The only network traffic will be the parameters supplied ti invoke the SP and the results of any query. Stored Procedures limit data with WHERE clauses, ensuring that your application sends just the necessary data over the network wire.
- Security – Users can execute a stored procedure without needing to execute any of the SQL statements directly. Therefore, a stored procedure can provide advanced database functionality for users who wouldn't normally have access to these tasks, but this functionality is made available in a tightly controlled way. You can grant rights to the stored procedure without granting rights to the underlying objects.Stored Procedures can be used to make SQL injection attacks more difficult to execute successfully.Stored Procedures enable you to perform error-handling at the server.
Syntax
of a Stored Procedure
CREATE
PROCEDURE procedure_name
[ { @parameter data_type }[ OUTPUT ]
] [ ,...n ]
[ WITH
[ { @parameter data_type }[ OUTPUT ]
] [ ,...n ]
[ WITH
{
RECOMPILE | ENCRYPTION } ]
AS sql_statement [ ...n ] >
AS sql_statement [ ...n ] >
Types
of Stored Procedures
There
are three types of Stored Procedures:
- User Defined Stored Procedures – User Defined stored procedures are created by normal users like us.
- SQL Server System Stored Procedures – System stored procedures usually begin with sp_ and most of them live in the Master database. They handle much of what is considered to be the nuts-and-bolts of SQL Server administration, and are written in T-SQL just like user defined SPs. Many vital functions of SQL Server rely on these SPs to remain intact!
- Extended Stored Procedures – Extended stored procedures usually begins with xp_ or sp_ and also live in the Master database. They are not written in T-SQL. They are in fact compiled DLLs which open up a world of functionality to the SQL Server environment.
No comments:
Post a Comment