SQL Server Stored Procedure : สอน คำสั่ง ของ Stored Procedure, เรียน คำสั่ง ของ Stored Procedure
 

Reference

Reference ในเว็บไซต์ Function.in.th เป็นการนำเสนอความรู้ในรูปแบบของแหล่งอ้างอิงของคำสั่งต่าง ๆ ที่ใช้ในการเขียนโปรแกรม โดยผู้ที่สนใจสามารถเข้ามาเรียนรู้การใช้งานคำสั่งของการเขียนโปรแกรมเหล่านี้ได้ ผ่านทาง URL code.function.in.th ทั้งนี้ผู้อ่านยังสามารถร่วมแสดงความคิดเห็นบนเนื้อหาที่มีสอนได้ ซึ่งถือเป็นการส่งเสริมให้มีการแลกเปลี่ยนประสบการณ์และความรู้ระหว่างผู้อ่านด้วยกันเอง
  • เงื่อนไขการใช้ Stored Procedure เงื่อนไขการใช้ Stored Procedure
    Batch คืออะไร ?? Bacth คืออะไร ??
    Script คืออะไร ?? Script คืออะไร ??
    คำสั่งต่างๆที่ใช้ใน Batch และ Script คำสั่งต่างๆที่ใช้ใน Batch และ Script
    ประเภทของ Stored Procedures ประเภทของ Stored Procedures
    { CREATE | ALTER } PROCEDURE การ สร้าง หรือ เปลี่ยนแปลง stored procedures
    DROP PROCEDURE การ ลบ stored procedures
    IF - ELSE IF - ELSE
    BEGIN - END BEGIN - END
  • subject :
    เงื่อนไขการใช้ Stored Procedure

    content :
    เงื่อนไขการใช้ Stored Procedure
    ใน stored procedure สามารถเรียกใช้ stored procedure อื่นได้
    ใน stored procedure สามารถเรียกใช้ stored procedure ตัวเองได้ ( ตามแนวคิดของ recursion )
    แต่จะไม่สามารถเรียกใช้ได้เกิน 32  ระดับ

  • subject :
    Batch คืออะไร ??

    content :
    Batch คือกลุ่มคำสั่ง SQL
    ซึ่งจะถูกแปลความไปพร้อมกัน
    โดยใน Batch หนึ่งๆจะถูกปิดท้ายด้วย keyword "GO"
    ( ถ้าระหว่างประมวลผล Batch หนึ่งๆ แล้วเกิดความผิดพลาดขึ้น 
    คำสั่งถัดไปจะหยุดทำงานทันที แต่คำสั่งก่อนหน้าจะถูกยกเลิกหรือไม่
    ขึ้นอยู่กับ การกำหนด commit หรือ rollback )

    example :
    USE function_in_th
    INSERT INTO subject ( name ) VALUES ( "PHP" )
    INSERT INTO subject ( name ) VALUES ( "JAVA" )
    GO

  • subject :
    Script คืออะไร ??

    content :
    Script คือกลุ่มคำสั่ง SQL หรือกุล่มคำสั่งของ Batch และมักเก็บเป็นไฟล์ไฟล์หนึ่ง

    example :
    USE function_in_th
    INSERT INTO subject ( name ) VALUES ( "PHP" )
    INSERT INTO subject ( name ) VALUES ( "JAVA" )
    GO
    DECLARE @subject_id int
    SELECT @subject_id = id FROM subject WHERE name = "PHP"
    UPDATE subject SET name = "PHP Programming" WHERE id = @subject_id
    GO

  • subject :
    คำสั่งต่างๆที่ใช้ใน Batch และ Script

    content :
    คำสั่งต่างๆที่ใช้ใน Batch และ Script
    
    USE db_name
    ใช้กำหนด database ที่จะใช้ script ทำงาน
    
    GO
    ใช้แยกการทำงานของแต่ละ batch ออกจากกัน
    
    DECLARE @var_name var_type
    ใช้ในการประกาศตัวแปร
    
    SET @var_name = value
    ใช้ในการกำหนด ค่าให้กับ ตัวแปร
    
    EXEC หรือ EXECUTE
    ใช้ประมวลผล stored procedures หรือ user defined function หรือ scalar_valued

  • subject :
    ประเภทของ Stored Procedures 

    content :
    Stored Procedures มี 3 ประเภท
    
    1) System Stored Procedures
    2) Extended Stored Procedures
    3) User Stored Procedures

  • subject :
    { CREATE | ALTER } PROCEDURE

    syntax :
    { CREATE | ALTER } PROCEDURE procedure_name
    [ @parameter data_type [ VARYING ] [ = default_value ] [ OUTPUT ] ]
    [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION } ]
    [ FOR REPLICATION ]
    AS sql_statement

    content :
    โดย VARYING ใช้ในเรื่องของ CURSOR
    โดย default_value ใช้กำหนดค่าเริ่มต้น กรณีที่ไม่มีการส่งค่ามา
    โดย OUTPUT หมายถึง Parameter ตัวนี้จะเป็นค่าที่ส่งกลับ
    โดย WITH RECOMPILE คือทุกๆครั้งที่ทำการ run จะมีการ compile ใหม่ทุกครั้ง
    จะทำให้มีการเกิด Execution Plan ลงใน Procedure Cache
    จะเหมาะกับ stroed procedure ที่มีการส่งค่าใหม่ๆไปทุกครั้ง
    โดย WITH ENCRYPTION คือกำหนดให้เข้ารหัสของ stroed procedure 
    โดย FOR REPLICATION ใช้ในเรื่องของการทำ Replication
    ( โดยปกติค่าที่ RETURN กลับจาก stored procedure จะใช้เพื่อตรวจสอบสถานะของ stored procedure เท่านั้น
    ดังนั้น ค่าที่คืนกลับมาจะต้องเป็น Integer เท่านั้น แต่ก็สามารถนำมาประยุกต์ใช้ให้เกิดประโยชน์ได้ )

    example :
    --- ex1
    CREATE PROCEDURE up_test
    AS
    SELECT * FROM subject
    
    --- ex2
    CREATE PROCEDURE up_sum
    @value_1 int,
    @value_2 int,
    @value_3 int,
    @result int output
    AS
    SELECT @result = @value_1 + @value_2 + @value_3
    
    DECLARE @total int
    EXEC up_sum 10, 20, 30, @total OUTPUT
    SELECT @total
    
    DECLARE @total int
    EXEC up_sum @value_3 = 30, @value_2 = 20, @value_1 = 10, @result = @total OUTPUT
    SELECT @total
    
    --- ex3
    CREATE PROCEDURE up_sum_2
    @value_1 int,
    @value_2 int,
    @value_3 int,
    @result int = 0
    AS
    BEGIN
    	SELECT @result = @value_1 + @value_2 + @value_3
    	RETURN @result
    END
    
    DECLARE @total int
    EXEC @total = up_sum_2 10, 20, 30
    SELECT @total

  • subject :
    DROP PROCEDURE

    syntax :
    DROP PROCEDURE procedure_name

    content :
    ใช้ในการลบ stored procedure

    example :
    CREATE PROCEDURE up_sum
    @value_1 int,
    @value_2 int,
    @value_3 int,
    @result int output
    AS
    SELECT @result = @value_1 + @value_2 + @value_3;
    
    DROP PROCEDURE up_sum;

  • subject :
    IF - ELSE

    syntax :
    IF boolean_expression
    	{ sql_statement | statement_block }
    ELSE
    	{ sql_statement | statement_block }

    content :
    คำสั่งแบบมีเงื่อนไขที่ใช้ใน Stroed Procedure

    example :
    CREATE PROCEDURE up_sum
    @value_1 int,
    @value_2 int,
    @value_3 int,
    @result int output
    AS
    BEGIN
    	SELECT @result = @value_1 + @value_2 + @value_3
    	IF @result < 0
    		@result = 0
    	ELSE
    		@result = @result * 10
    END

  • subject :
    BEGIN - END

    syntax :
    BEGIN
    	{ sql_statement | statement_block }
    END

    content :
    ชุดคำสั่งภายใน Stored Procedure

    example :
    CREATE PROCEDURE up_sum
    @value_1 int,
    @value_2 int,
    @value_3 int,
    @result int output
    AS
    BEGIN
    	SELECT @result = @value_1 + @value_2 + @value_3
    	IF @result < 0
    		@result = 0
    	ELSE
    		@result = @result * 10
    END

 
Share This Chapter Login with Facebook