Cursor Định nghĩa và cách sử dụng hàm của người dùng

58 1.3K 0
Cursor Định nghĩa và cách sử dụng hàm của người dùng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

          ! "#     !"#!$  %&%' ()*!)!+!,-'.#/  !   .#0123"!$  %/4!5"()*! )!+6.&7).89:; '<=>  !84 ?!.@A*  B 6C'  D!,-846 $ "#  %E%F       !"#$ %    &'  ()  *+,! /  %   0!  &  ()123!&!"4   &1!"4"5)6   758-9'  :;/  <=>?+@+- -+@+A";/     &' % &'(  .;!& G.@H%!67I! !!'!JK/4!5"()*!)!+*L !6I  %E%7*M'!JK/4! 5"!)!''F B:C5)$ D& B:CED&5) +,!4 BFG-"A$ED& & B:C /E5)+,!4758 -9HA;"5)+,!4"!" D& ) * N))OPPP?!&Q'!R!F  <!+!I=>?++J*  G S2 T2U2!' %!3!)%))3!) '6.&!R !!)).&.#JV'*  WN.&.4 !X*)!  K/!!11L!KMN +++J 'SYZ#!UG[3UG[ G[WJ6 ' 6.&!R!!))\?*=<*)!] SYZ3!^N))UG[%)3UG[ )36 G[WJ66W*/*J6(G+_6@6=.4)) .@!SYZ))  :/++J.&!R!>  J>  JVN))UG[ )3 G[WJ6G ' *)!.&!R!J`'* (+!I!"'J>  /4!5"J>  B*)!\? *=<%D*)!]SYZ!^N))UG[  )3G[WJ6G6SGUG_!R!!!'! 'J>  /4!5"..&*!*)! +   a^!WNSYZ)).# .&!R!!))3H.&] **))  \>  !JI!*&*B))*H/>? !&!I!"'*  WNb/>?!&' *  WN!#J>  /4!5"a^$  6H />!@.&/<!R!!! 6J!<#8*     c>*d*>  '*6e4  !J`*  WN!^.@f  .9 !>  !DSYZ , &*  '*6/'#/"f%'!   gJ4.h!J>  /4!5"!!6 J>  B*&!)%J  c"f%'!  '!6.hJ9 "VJV<>*$  %!!  !!FD!%'!  !6.hI!bD! !6I!/6  !(**+J>  /4!5"  G6F%'!  !I!"'!6.h !!;#!6I! Q ijW*6 k c)6)!W)F<!g!! 6  / 01  'L=.&!RL/ F B:+O5)P!D% 0!HO5)/Q' B:+O5)17 ' B:5)"OO5)RL $ +' BS./EE0!+HA +,!4&O' B:+O5)H/-9.!' B:+5)HTDU+! H/' 2 3456 G S2cursor_name T2U2 lU SmnU[So liU20S2GpUeqm 2Uo lSZ mcqmGqeS\Z miSpiU20S2Go l2SGpUeqm 2UpU cmUYZ\ZZ o lqYp0S2eZeno iU2select_statement liU2TYGSlUicolumn_namel@n ooo 7 [...]... @titles _cursor GO 28 Thủ tục tham số OUTPUT là CURSOR Thực thi 1 batch khai báo biến cursor cục bôê, thực thi thủ tục để gán output dạng cursor vào biến cục bôê DECLARE @MyCursor CURSOR EXEC titles _cursor @titles _cursor = @MyCursor OUTPUT WHILE (@@FETCH_STATUS = 0) BEGIN FETCH NEXT FROM @MyCursor END CLOSE @MyCursor DEALLOCATE @MyCursor GO 29 Khóa cursor  Lêênh SELECT trong 1 cursor sẽ có cùng... thực thi 18 Đóng giải phóng Cursor khỏi bộ nhớ  Phải đóng cursor lại trước khi giải phóng nó khỏi bộ nhớ  Cú pháp lệnh đóng cursor CLOSE cursor_ name  Khi lệnh CLOSE được thực thi, cấu trúc của cursor vẫn còn có thể mở lại được  Để giải phóng cursor khỏi bộ nhớ DEALLOCATE cursor_ name 19 Ví dụ 1: Tạo 1 cursor đơn giản USE pubs GO DECLARE authors _cursor CURSOR FOR SELECT... báo cursor  LOCAL: phạm vi của cursor là cục bộ trong phạm vi 1 batch, thủ tục, hay trigger trong đó cursor được tạo ra  GLOBAL: phạm vi của cursor là tòan cục được dùng trong suốt phiên kết nối Cursor sẽ bi xóa khi mất kết nối 11 Khai báo cursor  Forward-only: chỉ có thể đọc (fetch) các hàng một cách tuần tự từ đầu đến cuối bộ kết quả Nếu sử dụng FORWARD_ONLY mà không dùng. .. KEYSET, hay DYNAMIC thì cursor sẽ được tạo như 1 DYNAMIC cursor Khi không dùng cả FORWARD_ONLY SCROLL thì FORWARD_ONLY được xem như măêc đinh trừ phi có dùng các từ khóa STATIC, KEYSET, or DYNAMIC (măêc đinh của STATIC, KEYSET, DYNAMIC là SCROLL) FORWARD_ONLY chỉ hỗ trợ cho các loại cursor STATIC, KEYSET, DYNAMIC  SCROLL: cho phép sử dụng tất cả các tuỳ chọn của lệnh đọc (FIRST,... GO Cursor thủ tục thực thi cursor EXEC OpenCrsr; /* DECLARES and OPENS SampleCrsr */ GO EXEC ReadCrsr; /* Fetches the rows from SampleCrsr */ GO CLOSE SampleCrsr; GO DEALLOCATE SampleCrsr; GO 27 Thủ tục tham số OUTPUT là CURSOR USE pubs PROCEDURE titles _cursor @titles _cursor CURSOR VARYING OUTPUT AS SET @titles _cursor = CURSOR FORWARD_ONLY STATIC FOR SELECT * FROM titles OPEN @titles _cursor. .. thứ tự của hàng đó 13 Khai báo cursor  KEYSET: xác đinh thứ tự các hàng trong cursor là cố đinh khi cursor được mở Tâêp hợp các khóa xác đinh tính duy nhất các hàng được xây dựng trong 1 bảng của tempdb Các thay đổi vào giá tri không phải khoá ngay trong bảng gốc được thực hiện bởi người tạo cursor hay từ các người dùng khác đều có thể nhìn thấy được từ cursor khi... hàng của cursor DECLARE complex _cursor CURSOR scroll FOR SELECT cShopperId FROM dbo.Shopper WHERE cShopperId not in (SELECT cShopperId from dbo.Orders) OPEN complex _cursor; FETCH absolute 5 FROM complex _cursor; DELETE dbo.Shopper WHERE CURRENT OF complex _cursor; CLOSE complex _cursor; DEALLOCATE complex _cursor; 24 Ví dụ: lệnh Update dùng dữ liệu hàng hiện hành của cursor USE Pubs CREATE TABLE dbo.Table1... authors _cursor Perform the first fetch FETCH NEXT FROM authors _cursor 20 WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM authors _cursor END CLOSE authors _cursor DEALLOCATE authors _cursor GO Ví dụ 2: dùng scroll tùy chọn của fetch USE pubs GO DECLARE authors _cursor SCROLL CURSOR FOR SELECT au_lname, au_fname FROM authors ORDER BY au_lname, au_fname OPEN authors _cursor Fetch the last row in the cursor. .. FROM authors _cursor CLOSE authors _cursor DEALLOCATE authors _cursor GO Cursor có thể cập nhật (Updatable cursor)  Updatable cursors hỗ trợ các lêênh sửa đổi dữ liêêu cho phép câêp nhâêt các hàng thông qua cursor Sau khi đã đinh vi 1 hàng trong updatable cursor , có thể dùng lêênh update hay delete trên bản gốc đã dùng để tạo cursor Thao tác này được gọi là positioned updates  Positioned... lệnh đọc (FIRST, LAST, PRIOR, NEXT, RELATIVE, ABSOLUTE) 12 Khai báo cursor  Static: bộ kết quả được khôi phục lưu trữ trong 1 bảng của CSDL tempdb Những sửa đổi được làm trong bảng gốc sẽ không được phản ánh trong dữ liệu đọc được từ cursor cursor này không chấp nhận bất kỳ sửa đổi nào  DYNAMIC: tạo 1 cursor phản ánh tất cả những thay đổi dữ liệu xảy ra tại các hàng . '6.&!R !!)).&.#JV'*  WN.&.4 !X*)!  K/! !11 L!KMN +++J 'SYZ#!UG[3UG[ G[WJ6. $ +' BS./EE0!+HA +,!4&O' B:+O5)H/-9.!' B:+5)HTDU+! H/' 2 3456 G S2 cursor_ name T2U2 lU SmnU[So liU20S2GpUeqm 2Uo lSZ mcqmGqeS miSpiU20S2Go l2SGpUeqm

Ngày đăng: 12/05/2014, 12:08

Từ khóa liên quan

Mục lục

  • Cursor: định nghĩa và cách sử dụng Hàm của người dùng

  • Mục tiêu

  • Vai trò của Cursor

  • Slide 4

  • Cursor là gì?

  • Các cách tạo cursor

  • Slide 7

  • Bốn loại cursor

  • Cấu trúc của Cursor

  • Lệnh khai báo cursor

  • Khai báo cursor

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Lệnh mở cursor

  • Đọc dữ liệu - Fetching data

  • Biến @@fetch_status

  • Đóng và giải phóng Cursor khỏi bộ nhớ

  • Ví dụ 1: Tạo 1 cursor đơn giản

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan