Here is the syntax of SPROC:
CREATE PROC [ EDURE ] [owner.] ProcedureName
[ { @parameter data_type } [= DefaultValue] [OUTPUT] ] [ ,...n ]
[ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
AS
BEGIN
T-SQL-statements
END
Here is an example:
CREATE PROC ProductList (
@ProductType varchar(30) = 'Electronics')
WITH ENCRYPTION
AS
BEGIN
SELECT
ProductName, ProductType,
Model, UnitPrice
FROM Products (NOLOCK)
WHERE ProductType = @ProductType
END
How to execute:
-- Return all the products belongs to Electronics
EXECUTE ProductList
GO
-- Return all the products belongs to Auto Mobiles
EXECUTE ProductList 'Auto Mobiles'
GO
SQL Statement Limitations in a Procedure
Any SET statement can be specified inside a stored procedure except SET SHOWPLAN_TEXT and SET SHOWPLAN_ALL, which must be the only statements in the batch.
Inside a stored procedure, object names used with certain statements must be qualified with the name of the object owner if other users are to use the stored procedure. The statements are:
•ALTER TABLE
•CREATE INDEX
•CREATE TABLE
•All DBCC statements
•DROP TABLE
•DROP INDEX
•TRUNCATE TABLE
•UPDATE STATISTICS
Permissions
CREATE PROCEDURE permissions default to members of the sysadmin fixed server role, and the db_owner and db_ddladmin fixed database roles. Members of the sysadmin fixed server role and the db_owner fixed database role can transfer CREATE PROCEDURE permissions to other users. Permission to execute a stored procedure is given to the procedure owner, who can then set execution permission for other database users.
No comments:
Post a Comment