งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Stored Procedure. Stored Procedures A stored procedure is a collection of SQL statements stored in a database and executed by name. –Are a Transact-SQL.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Stored Procedure. Stored Procedures A stored procedure is a collection of SQL statements stored in a database and executed by name. –Are a Transact-SQL."— ใบสำเนางานนำเสนอ:

1 Stored Procedure

2 Stored Procedures A stored procedure is a collection of SQL statements stored in a database and executed by name. –Are a Transact-SQL extension –Allow many users access to same code –Provide a centralized and consistent implementation of integrity logic –Are used to implement Frequently used queries Business rules Program routines common to other stored procedures like error handling routines

3 Benefits of Stored Procedures Run faster than the same commands executed interactively as a batch Reduce network traffic Enforce consistency troughout the database Encourage modular application development Help provide security Reduce operator error

4 Creating Stored Procedure รูปแบบคำสั่ง create proc procedure_name as SQL_Statements [Return] ตัวอย่าง create proc proc_select_pubs as Select * from publishers Retrun

5 Examining, Renaming and Dropping (using ISQLW) Examining a procedure –sp_Help[proc_name] –sp_helptext proc_name Rename a procedure –sp_rename old_name, new_name Drop a procedure –drop proc_name

6 Using Input Parameters An input parametrs is a variable value supplies from a calling program to the stored procedure The input parameter is defined within the stored procedure in order to execute the stored procedure with the corresponding argument Benefit : Procedure parameters increase a procedure flexibility

7 Using Input Parameters รูปแบบคำสั่ง create proc procedure_name (@parameters datatype[, @parameters datatype …]) as SQL_Statements Return ตัวอย่าง procedure รับค่า 1 ค่า create proc proc_author_addr (@lname varchar(40)) as Select au_id, au_fname, au_lanme, phone, address From authors Where au_lname = @lname

8 Guidline for Using Parameters ชื่อ Parameter มีความยาวได้ 30 ตัวอักษร รวม “@” ด้วย สามารถรับ parameter ได้ถึง 255 parameters ค่า parameter ที่ส่งมาอาจเป็น wildcard ก็ได้ ถ้า parameter ถูกใช้ใน Like clause เราไม่สามารถใช้ชื่อ object เป็น parameter ได้ ชื่อ ชนิดข้อมูล และ ค่าปริยาย ของ parameters จะถูกกำหนดเมื่อ procedure ถูกสร้าง Data type สามารถเป็นได้ทั้งที่เรากำหนด เองหรือใช้ system datatype ก็ได้

9 Execute a Stored Procedure With a single parametersWith a single parameters exec @parameter_name = value exec procedure_name @parameter_name = value –by name declare @lastname varchar(40) select @lastname = “Green” exec @lname=@lastname exec proc_author_addr @lname=@lastname –by position declare @lastname varchar(40) select @lastname = “Green” exec@lastname exec proc_author_addr @lastname

10 Execute a Stored Procedure Using multiple parametersUsing multiple parameters – ตัวอย่างการสร้าง Stored Procedureby รับค่า หลายค่า create proc author_addr2 (@lname varchar(40),@state char(2)) as select au_id,au_fname,au_lanme,phone,address,city,state,postalcode from authors where upper(au_lanme) like upper(@lname)+”%” and upper(state)=upper(@state) return

11 Execute a Stored Procedure With multiple parameters exec @parameter_name = value exec procedure_name @parameter_name = value by name exec@state=“CA”, @lname=“green” exec author_addr2 @state=“CA”, @lname=“green” by position exec “green”, ”CA” exec author_addr2 “green”, ”CA”

12 Common Errors with Input Parameters Passed parameters are not compatible with the datatype of the parameter The way in which parameters are passed is mixed;parameters are passed by name and by position One or more parameters is missing Missing parameters can be overcome by using default values for input parameers Parameters are passed in the wrong order

13 Returning Values from a Procedure ต้องใส่ keyword output เพื่อกำหนด return parameter ในการรับค่าโปรแกรมที่เรียกต้องกำหนด parameter เป็นแบบ output ในคำสั่ง execute

14 Returning Values from a Procedure ตัวอย่างการสร้าง stored procedure แบบมีการ ส่งค่ากลับ create proc proc_num_sales (@book_id char(6)=null, @tot_sales int output) as select @tot_sales=sum(qty) from sales where title_id = @book_id return

15 Returning Values from a Procedure ตัวอย่างโปรแกรมรับค่ากลับ จาก stored procedure declare @total int, @tid char(6) select @tid = “PS2091” exec proc_num_sales @tid, @total output select “Book ID” = @tid, “Total sales” = @total Book ID Total sales ----------- PS2091 108

16 Example : Two-Way Parameter Passing Calling Batch Program declare declare @qty_ordered int, @actual_qry int, @item_ordered char(10) select @qty_ordered = 50 select @actual_qty = @qty_ordered select @item_ordered = “1095-87654” exec@item_ordered, @actual_qty output exec proc_dec_inventory @item_ordered, @actual_qty output -- additional procedure here. Includes error handling, etc. Select “Quantity shipped is “ + convert(char(10), @actual_qty) + “out of” + convert(char(10), @qty_ordered)

17 Example : Two-Way Parameter Passing (cont.1) Calling proc_dec_inventory Procedure create proc proc_dec_inventory (@item_ordered char(10), @actual_qty int output) as declare @qty_stock int, @back_order int select @back_order = 0 if not exists (select * from inventory where item = @item_ordered) begin raiserror 20010 “Item not listed.” return end

18 Example : Two-Way Parameter Passing (cont.2) Calling proc_dec_inventory Procedure ( ต่อ ) select @qty_stock = stock from inventory where item=@item_ordered if @qty_stock < @actual_qty select @back_order = @actual_qty - @qty_stock, @actual_qty = @qty_stock update inventory set stock = stock - @actual_qty set backordered_qty = @back_order + backordered_qty where @item_ordered = item return

19 Returning Procedure Status Every procedure automatically returns a return status Zero is returned for successful completion -1-99 -1 through -99 are returned for detected errors Use the return statement to specify a return value Examples : return 10 The calling program can test for the return status

20 Example : Return Status Example of a procedure that returns status : create(@lname varchar(40)) create proc proc_author_addr (@lname varchar(40)) as if not exists (select * from authors where upper(au_lname) like upper (@lname) + “%”) return -900 select au_id, au_fname, au_lname, phone, address, city, state, postalcode from authors where upper(au_lname) like upper(@lname) + “%” return 0

21 Example : Return Status (cont.) Example of a calling program that checks the return status : declare declare @ret_status int exec@lname = “Stringer” exec @ret_status = procauthor_addr @lname = “Stringer” if @ret_status != 0 begin Print “Error finding name.” return end else begin Print “Name was found.” end


ดาวน์โหลด ppt Stored Procedure. Stored Procedures A stored procedure is a collection of SQL statements stored in a database and executed by name. –Are a Transact-SQL.

งานนำเสนอที่คล้ายกัน


Ads by Google