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

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

Objective สามารถเขียนกลุ่มคำสั่งใน T-SQL และ คอมเมนท์ได้ สามาถกำหนดตัวแปร กำหนดค่าให้กับตัว แปร ชนิด Local ใน T-SQL ได้ สามารถใช้ T-SQL control-of -flow.

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


งานนำเสนอเรื่อง: "Objective สามารถเขียนกลุ่มคำสั่งใน T-SQL และ คอมเมนท์ได้ สามาถกำหนดตัวแปร กำหนดค่าให้กับตัว แปร ชนิด Local ใน T-SQL ได้ สามารถใช้ T-SQL control-of -flow."— ใบสำเนางานนำเสนอ:

1

2 Objective สามารถเขียนกลุ่มคำสั่งใน T-SQL และ คอมเมนท์ได้ สามาถกำหนดตัวแปร กำหนดค่าให้กับตัว แปร ชนิด Local ใน T-SQL ได้ สามารถใช้ T-SQL control-of -flow ได้ สามารถส่งข้อความ หรือข้อความแสดง ความผิดพลาด และ ผลลัพท์กลับคืนมาได้

3 Application Development Context กำหนดกฎข้อบังคับต่าง ๆ กำหนดคุณสมบัติของโปรแกรม ออกแบบทาง logical และ physical เริ่มเขียนโปรแกรม เริ่มเขียนโปรแกรม

4 Batch Restrictions and Note คำสั่ง SQL บางคำสั่งไม่สามารถรวมกัน คำสั่งอื่น ๆ ได้ใน T-SQL execexecute Stored procedures ใน batch ต้องขึ้นต้น ด้วยคำว่า exec หรือ execute, เว้นแต่ว่า เป็นคำสั่งแรก คำสั่งต่อไปนี้ไม่สามารถรวมกับคำสั่งอื่น ๆ ใน batch create tablecreate default create triggercreate views declare cursoruse

5 Commenting T-SQL Code /**/ /* นี่คือ Comment */ -- -- นี่คือ Comment

6 Introduction Local Varialbles ประกาศตัวแปรชนิด Local การกำหนดค่าให้กับตัวแปรชนิด Local ข้อจำกัดและ ความผิดพลาดทั่วไป

7 Local Varialbles ผู้ใช้เป็นผู้กำหนด declare ใช้คำสั่ง declare ในการกำหนดตัวแปร ต้องมีชื่อและชนิดของข้อมูล สามารถถูกกำหนดค่าโดยผู้ใข้ได้ null จะถูกกำหนดให้เป็นค่า null เมื่อมีการ ประกาศตัวแปร จะใช้งานภายใต้ batch, stored procedure หรือ trigger ที่ถูกประกาศไว้ เท่านั้น

8 Local Varialbles “@” ต้องขึ้นต้นด้วยเครื่องหมาย “@” “@” ชื่ตัวแปรมีความยาวได้ถึง 30 ตัวอักษรรวม เครื่องหมาย “@” รูปแบบ declare@ @ declare @variable_name datatype [, @variable_name datatype] ตัวอย่าง declare @ declare @myqty int declare @ declare @myid char(40)

9 Assigning Values to Local Varialbles with Select Select ใช้คำสั่ง Select เพื่อกำหนดค่าให้กับตัว แปร รูปแบบ select @ select @variable=expression @ [, @variable=expression]… [from...] [where …] Example declare@ declare @var1 int select @ select @var1 = 99

10 Assigning Values to Local Varialbles with Select declare@ declare @ytdqtyint, @ @sellpricemoney, @ @var1int, @ @var2float --initialize variables select@ select @var1 = -68, @ @var2 = 97.564

11 Assigning Values to Local Varialbles with Select select @ select @ytdqty = total_sales, @ @sellprice = price from titles where title_id = “TC7777” declare @ declare @income money select @ select @income = price*total_sales from titles where title_id = “BU1032”

12 Restrictions on Local variables ตัวแปรใช้สำหรับเก็บค่าข้อมูลเท่านั้น ตัวแปรไม่สามารถใช้เก็บชื่อตาราง ชื่อ คอลัมน์ หรือ database objects อื่น ๆ หรือคียเวอร์ต่าง ๆ ได้ ตัวแปรเก็บได้เพียงค่าเดียวเท่านั้น Select ถ้าไม่มีการกำหนดค่าโดยคำสั่ง Select ค่าข้อมูลในตัวแปรก็จะยังคงอยู่เหมือนเดิม ถ้ามีการกำหนดค่าด้วยคำสั่ง Select หลาย ๆ ครั้ง ตัวแปรจะเก็บค่าที่มีการกำหนดครั้ง หลังสุด

13 Using Local variables : โปรแกรมนี้ผิดตรงไหน Declare@ Declare @myvariable int select@ select @myvariable = title from titles where title_id = “BU2075” select @ select @myvariable

14 Using Local variables : โปรแกรมนี้ผิดตรงไหน select select pub_id from publishers select@ select @myvat = total_sales from titles where title_id = “BU2075” Declare@ Declare @myvar int select@ select @myvar

15 Global Variables เป็นตัวแปรที่ SQL Server เตรียมไว้ให้ โดยระบบจะเป็นผู้กำหนดค่าให้เอง “@@” ขึ้นต้นด้วยเครื่องหมาย “@@” ผู้ใช้ไม่สามารถกำหนดค่าให้กับ global variable ได้ Server จะเป็นผู้กำหนดให้เองโดย อัตโนมัติ

16 Global Variables

17 Using Global Variables @@ @@rowcount ใช้สำหรับตรวจสอบ จำนวนแถวที่เกิดจากคำสั่งล่าสุด @@ @@error จะเป็นหมายเลขแสดงความ ผิดพลาดที่เกิดขึ้น

18 Example: Code using Global Variables select@@ select @@version declare@ declare @book_price money select select book_price = price from titles where title_id = “BU1032” @@ If @@rowcount = 0 -- norows returned by select print “No such title_id” else begin print “title_id exists with” select@ select “Price of ” = @book_price end

19 Control-of-Flow Keywords IF…Else Begin…End While… Return… waitfor...

20 Control-of-Flow : If…else @ declare @avg_price money @ select @avg_price = avg(price) from titles if @ if @avg_price < $15.00 update titles set price = price * $2else update titles set price = price * $1.1

21 Control-of-Flow : begin…end declare @ declare @avg_price money select @ select @avg_price = avg(price) from titles @ if @avg_price < $15.00begin update titles set price = price * $2 printe “Prices have been doubles” end @ else if @avg_price >= $15begin update titles set price = price * $1.1 Print “Prices increased 10%”end else Print ”Print Avg Price Is Null”

22 Control-of-Flow : If exists and If not exists declare @ declare @lname varchar(40) select @ select @lname = “Smith” exists @ if exists (select * from authors where au_name = @lname) select@ select “There is a ” + @lname else select @ select “Therer is no author called ”+ @lname

23 Control-of-Flow : return เป็นคำสั่งจบการทำงานของ batch, stored procedure to trigger คำสั่งที่อยู่หลัง return จะไม่ถูกทำงาน not existsselect @ if not exists (select * from titles where title_id = @t_id ) begin print “There is no title by this title id.” return return -- exit the batch end

24 Control-of-Flow : return not existsselect @ if not exists (select * from titles where title_id = @t_id ) begin print “There is no title by this title id.” return return -- exit the batch end insert salesdetail (@@@ @@ values (@s_id, @o_num, @t_id, @qty_sold, @desc) go

25 Control-of-Flow : while Repeated Execution While While (Select avg(price) from titles) < $40begin select select title_id, price from titles where price > $20 update update tiltes set price = price + $2end select select title_id, price from titles print “Too much for the matrkey to bear.”

26 Control-of-Flow : while Repeated Execute break continue break และ continue –break ใช้สำหรับออกจาก loop แต่ไม่ออก จาก batch –continue ให้กลับไปที่บนสุดของ loop

27 Control-of-Flow : while Repeated Execute While select While (select avg(price) from titles) > $20begin update titles set price = price / 2 select if (select max(price) from titles) < $40 break else select if (select avg(price) from titles) > $20 continue print “Average price still over $20”end select select title_id, price from titles where price > $20 print “Not too Expensive”

28 Control-of-Flow : Event- Driven Execute Waitfor Waitfor ใช้หน่วงเวลาการทำงานชั่วคราว waitfor Syntax waitfor {delay time | time time | … } waitfor waitfor delay ‘0:30:00’-- หยุดคอย 30 นาที ส่วนมากใช้โดยโปรเซสของระบบ เพื่อการ จัดการข้อมูล การจัดการกับ error การ จัดการกับ event ต่าง ๆ

29 Returning Message Using print print “Hello” @@ print @msg -- @msg is a local variable declare@ declare @table_name varchar(30), declare@ declare @user_name varchar(30) select@ select @table_name = “titles”, @ @user_name = “ezekiel” %1! %2!@ @ print “The table %1! is not owned but the user %2!.”, @table_name, @user_name

30 Returning Message Using raiserror raiserror ใช้สำหรับกำหนด error ที่ เหมือนกับ error ที่ถูกกำหนดโดย system-generated raiserror @ raiserror error_number { “error message” | @local variable} [, arg_list ] @@ error_number จะถูกบรรจุลงใน @@error @ @local_variable ต้องมี datatype เป็น char หรือ varchar ใช้ raiserror เพื่อสร้างข้อความแสดง ความผิดพลาดของเราเอง ข้อจำกัดคือ –Error message มีความยาวไม่เกิน 255 ตัวอักษร –Error number ต้องมากกว่า 20000

31 Returning Message Using raiserror ตัวอย่างที่ 1 Message with no arg_list raiserror raiserror 30250 “The title dose not exist” ตัวอย่างที่ 2 Message with arg_list declare@ declare @tab_name varchar(30) select@ select @tab_name = “titles” raiserror @ raiserror 99999 “Table %1! Not found.”, @tab_name ตัวอย่างที่ 3 declare@ declare @err_msg char(50) select@ select @err_msg = “I can’t do that, ” + user_name raiserror@ raiserror 20100 @err_msg


ดาวน์โหลด ppt Objective สามารถเขียนกลุ่มคำสั่งใน T-SQL และ คอมเมนท์ได้ สามาถกำหนดตัวแปร กำหนดค่าให้กับตัว แปร ชนิด Local ใน T-SQL ได้ สามารถใช้ T-SQL control-of -flow.

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


Ads by Google