Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Stored Procedure, Function and Trigger. 2Objectives 1. Database Programming 2. Stored Procedure 3. Function 4. Trigger.

Similar presentations


Presentation on theme: "1 Stored Procedure, Function and Trigger. 2Objectives 1. Database Programming 2. Stored Procedure 3. Function 4. Trigger."— Presentation transcript:

1 1 Stored Procedure, Function and Trigger

2 2Objectives 1. Database Programming 2. Stored Procedure 3. Function 4. Trigger

3 3 1. Database Programming 1.1 Variables 1.2 Control-of-Flow Tools

4 4 1.1 Variables l Declare a variable: DECLARE @limit money DECLARE @min_range int, @hi_range int l Assign a value into a variable: SET @min_range = 0, @hi_range = 100 SET @limit = $10 l Assign a value into a variable in SQL statement: SELECT @price = price FROM titles WHERE title_id = 'PC2091'

5 5 1.2 Control-of-Flow Tools 1.2.1 BEGIN…END 1.2.2 IF…ELSE 1.2.3 CASE … WHEN 1.2.4 RETURN [n] 1.2.5 WHILE 1.2.6 PRINT

6 6 1.2.1 BEGIN…END l Defines a statement block l Other Programming Languages: { … } – C#, Java, C: { … } BEGIN … END – Pascal, Delphi: BEGIN … END

7 7 1.2.2 IF…ELSE l Defines conditional and, optionally, alternate execution when a condition is falseIF Boolean_expression T-SQL_statement | block_of_statements[ELSE T-SQL_statement | block_of_statements ] Example: IF (SELECT ytd_sales FROM titles WHERE title_id = 'PC1035') > 5000 PRINT 'Year-to-date sales are greater than $5,000 for PC1035.‘

8 8 1.2.3 CASE … WHEN CASE input_expression WHEN when_expression THEN result_expression [WHEN when_expression THEN result_expression…n] [ELSE else_result_expression ] END Example: SELECT CASE payterms WHEN 'Net 30' THEN 'Payable 30 days after invoice' WHEN 'Net 60' THEN 'Payable 60 days after invoice' WHEN 'On invoice' THEN 'Payable upon receipt of invoice' ELSE 'None' END as Payment_Terms FROM sales ORDER BY payterms Other Programming Language Switch … Case Select … Case C#, Java: Switch … Case ; VB: Select … Case

9 9 1.2.4 RETURN [n] l Exits unconditionally of Trigger, Procedure or Function and return a value (if any).

10 10 1.2.5 WHILE l Repeats a statement (or block) while a specific condition is trueWHILE Boolean_expression SQL_statement | block_of_statements [BREAK] SQL_statement | block_of_statements [CONTINUE] Example: WHILE (SELECT AVG(royalty) FROM roysched) < 25 BEGIN UPDATE roysched SET royalty = royalty * 1.05 IF (SELECT MAX(royalty)FROM roysched) > 27 BREAK ELSE CONTINUE END SELECT MAX(royalty) AS "MAX royalty" FROM roysched

11 1 1.2.6 PRINT  Display message in SQL Query Analyze (Console) PRINT string  Other Programming Languages:  Java: System.out.print  C#, VB.NET: Console.WriteLine

12 12 2. Stored Procedure 2.1 What Is a Stored Procedure? 2.2 Stored Procedure vs. SQL Statement 2.3 Create, update and delete a procedure

13 13 2.1 What Is a Stored Procedure? l A stored procedure is a collection of T-SQL statements that SQL Server compiles into a single execution plan. l Procedure is stored in cache area of memory when the stored procedure is first executed so that it can be used repeatedly. SQL Server does not have to recompile it every time the stored procedure is run. l It can accept input parameters, return output values as parameters, or return success or failure status messages.

14 14 2.2 Stored Procedure vs. SQL Statement First Time - Check syntax - Compile - Execute - Return data Second Time - Check syntax - Compile - Execute - Return data First Time - Execute - Return data Second Time - Execute - Return data SQL StatementStored Procedure Creating - Check syntax - Compile

15 15 2.3 Create, update and delete a procedure 2.3.1 Create a Procedure 2.3.2 Update a Procedure 2.3.3 Delete a Procedure

16 16 2.3.1 Create a Procedure 2.3.1.1 Syntax 2.3.1.2 Example 1 (Without parameters) 2.3.1.3 Example 2 (With parameters) 2.3.1.4 Example 3 (Using RETURN)

17 17 2.3.1.1 Syntax CREATE PROC[EDURE] procedure_name [ @parameter_name data_type] [= default] OUTPUT][,...,n] AS T-SQL_statement(s)

18 18 2.3.1.2 Example 1 (Without parameters) CREATE PROC Departments_Members AS SELECT Dep_Name, COUNT(Emp_ID) NumberOfMember FROM Departments D, Employees E WHERE D.Dep_ID = E.Dep_ID GROUP BY Dep_Name Run Procedure Execute Departments_Members

19 19 2.3.1.3 Example 2 (With parameters) CREATE PROC Department_Members @DeptName varchar(50) AS SELECT Dep_Name, COUNT(Emp_ID) NumberOfMember FROM Departments D, Employees E WHERE D.Dep_ID = E.Dep_ID and Dep_Name = @DeptName GROUP BY Dep_Name Run Procedure Execute Department_Members ‘Accounting’

20 20 2.3.1.4 Example 3 (Using RETURN ) CREATE PROC GROUPLEADER_MEMBERS @Emp_Code varchar(10) = null AS IF @Emp_Code is null BEGIN PRINT 'Please enter Employee Code!' RETURN END SELECT * FROM Employees WHERE EMP_EMP_ID = (SELECT EMP_ID FROM Employees WHERE Emp_Code = @Emp_Code) ORDER BY Emp_Name

21 21 2.3.2 Update a Procedure ALTER PROC[EDURE] procedure_name [ @parameter_name data_type] [= default] [OUTPUT] [,...,n] AS t-sql_statement(s)

22 2 2.3.3 Delete a Procedure l DROP PROCEDURE procedure_name

23 23 3. Function 3.1 What is a Function? 3.2 Scalar functions Example 3.3 Inline Table-valued Functions Example 3.4 Multi-statement Table-Valued Functions Example

24 24 3.1 What is a Function? “What Is a Stored Procedure?” l See “What Is a Stored Procedure?” on slide 13 l SQL Server supports three types of user-defined functions: – Scalar functions – Inline table-valued functions – Multi-statement table-valued functions

25 25 3.2 Scalar functions Example CREATE FUNCTION Revenue_Day (@Date datetime) Returns money AS BEGIN DECLARE @total money SELECT @total = sum(sali_Quantity * sali_price) FROM Sales_Orders s, Sales_Orders_Items si WHERE s.sal_number = si.sal_number and year(sal_date) = year(@Date) and month(sal_date) = month(@Date) and day(sal_date)= day(@Date) RETURN @total END Use: select dbo.Revenue_In_Day(GETDATE())

26 26 3.3 Inline Table-valued Functions Example CREATE FUNCTION AveragePricebyItems (@price money = 0.0) RETURNS table AS RETURN ( SELECT Ite_Description, Ite_Price FROM Items WHERE Ite_Price > @price) Use: select * from AveragePricebyItems (15.00)

27 27 3.4 Multi-statement Table-Valued Functions Example CREATE FUNCTION AveragePricebyItems2 (@price money = 0.0) RETURNS @table table (Description varchar(50) null, Price money null) AS begin insert @table SELECT Ite_Description, Ite_Price FROM Items WHERE Ite_Price > @price return end Use: select * from AveragePricebyItems2 (15.00)

28 28 4. Trigger 4.1 What is a Trigger? 4.2 Creating Syntax 4.3 Disable/Enable syntax 4.4 Deleted and Inserted tables 4.5 Example 4.6 Other Functions

29 29 4.1 What is a Trigger? l A trigger is a special type of stored procedure that is executed automatically as part of a data modification. l A trigger is created on a table and associated with one or more actions linked with a data modification (INSERT, UPDATE, or DELETE). l When one of the actions for which the trigger is defined occurs, the trigger fires automatically l Following are some examples of trigger uses: – Maintenance of duplicate and derived data – Complex column constraints – Cascading referential integrity – Complex defaults – Inter-database referential integrity

30 30 4.2 Creating Syntax CREATE TRIGGER trigger_name ON {[DELETE] [,] [INSERT] [,] [UPDATE]} AS SQL_Statement [...n]

31 31 4.3 Disable/Enable syntax l Disable syntax Disable trigger on l Enable syntax Enable trigger on

32 32 4.4 Deleted and Inserted tables l When you create a trigger, you have access to two temporary tables (the deleted and inserted tables). They are referred to as tables, but they are different from true database tables. They are stored in memory—not on disk. l When the insert, update or delete statement is executed. All data will be copied into these tables with the same structure. l The values in the inserted and deleted tables are accessible only within the trigger. Once the trigger is completed, these tables are no longer accessible. Inserted Table Deleted Table new old InsertUpdateDelete

33 3 4.5 Example CREATE TRIGGER Print_Update ON Bicycle_Inventory FOR UPDATE AS PRINT "The Bicycle_Inventory table was updated"

34 34 4.6 Other Functions l View contents of trigger sp_helptext l View number of triggers of a table sp_helptrigger

35 35

36 36


Download ppt "1 Stored Procedure, Function and Trigger. 2Objectives 1. Database Programming 2. Stored Procedure 3. Function 4. Trigger."

Similar presentations


Ads by Google