Professional Documents
Culture Documents
Một số khái niệm về Stored Procedures
Một số khái niệm về Stored Procedures
- M͙t thͧ tͥc lưu là m͙t tɪp hͣp các câu lʄnh SQL chưa biên dʈch
- Stored procedure thͱc thi va hoàn thành các lʄnh logic thông qua các ͩng dͥng khác nhau
, các câu lʄnh SQl luôn đưͣc kiʀm tra m͙t lɤn tɞi đây.
- M͙t khi Stored procedure đưͣc thiɼt lɪp thì nhͯng ͩng dͥng cɤn thiɼt tương tͱ chʆ cân
thͱc hiên lɞi Store procedure
- Sͭ dͥng Stored procedure đʀ quɠn lý các đăng nhɪp và Stored procedure hʄ th͑ng đʀ
quɠn lý CSDL ngư͝i dùng .
- Ngư͝i phát triʀn CSDL hoɴc ngư͝i quɠn trʈ CSDL viɼt ra các thͧ tͥc lưu đʀ thͱc thi các
nhiʄm vͥ quɠn trʈ thông thư͝ng hoɴc áp dͥng cho nhͯng CSDL phͩc tɞp. Thͧ tͥc lưu chͩa
các câu lʄnh thao tác v͛i dͯ liʄu hoɴc các câu lʄnh nhɪn dͯ liʄu trɠ vɾ.
- SQL server cung cɢp các thͧ tͥc lưu hʄ th͑ng , các thͧ tͥc nay là m͙t tɪp hơp các câu
lʄnh T_SQL . Nhͯng thͧ tͥc này cho phép cɪp nhɪt CSDL và cɪp nhɪt các bɠng.
- Tên cͧa tɢt cɠ các thͧ tͥc lưu hʄ th͑ng đɾu bɬt đɤu v͛i ³sp_´. Thͧ tͥc Lưu hʄ th͑ng đưͣc
đɴt trong CSDL master
Chúng ta có thʀ sͭ dͥng Stored procedures đʀ tɞo lɪp và g͡ b͏ các đăng nhɪp .
1)Đʀ tɞo lɪp m͙t đăng nhɪp chúng ta thͱc hiên câu lʄnh sau:
EXEC sp_addlogin µ ThaiMinh¶ , µ123456¶
͞ đây tên đăng nhɪp là ³ThaiMinh´ và mɪt khɦu là ³123456´
2) Đʀ g͡ b͏ m͙t đăng nhɪp khi nó không còn cɤn thiɼt nͯa, chúng ta có thʀ sͭ dͥng các
câu lʄnh sau:
-Các thͧ tͥc m͟ r͙ng : Các thͧ tͥc m͟ r͙ng cho phép ngư͝i dùng khôi phͥc và thͱc hiʄn
m͙t thư viʄn liên kɼt đ͙ng (DLL) . THư viên liên kɼt đ͙ng lá m͙t tɪp hͣp các thͧ tͥc ,
chương trình con đưͣc lưu trͯ trong m͙t file.dll . Nó đưͣc nɞp vào khi m͙t chương trình cɤn
đɼn.
Sp_server_info Liʄt kê thông tin vɾ server , ví dͥ như b͙ kí tͱ , phiên bɠn và thͩ tͱ sɬp
xɼp
Sp_stored_procedures Liʄt kê tɢt cɠ các thͧ tͥc lưu co trong môi trư͝ng hiên tɞi .
Sp_tables Liʄt kê tɢt cɠ các đ͑i tưͣng mà có thʀ đưͣc truy vɢn trong môi trư͝ng hiʄn tɞi.
Sp_password Thêm hoɴc thay đ͕i mɪt khɦu cͧa tài khoɠn đăng nhɪp.
Sp_configure Thay đ͕i các tuƒ ch͍n trong cɢu hình toàn cͥc cͧa SQL server
Sp_help Hiʀn thʈ thông tin vɾ m͙t đ͑i tưͣng CSDL nào đó.
Sp_helptext Hiʀn thʈ chu͗i ký tͱ thͱc cho m͙t quy tɬc , hoɴc huͷ thͧ tͥc lưu trư không mã
hoá , hàm đʈnh nghĩa b͟i ngư͝i sͭ dͥng , bɨy l͗i hoɴc view.
-Các thͧ tͥc bɠo mɪt : SQL server cung cɢp m͙t s͑ thͧ tͥc hʄ th͑ng giúp cho viʄc quɠn lý
bɠo mɪt .
- Các thͧ tͥc con tr͏ : thͧ tͥc đưͣc sͭ dͥng đʀ thͱc hiʄn các chͩc năng cͧa m͙t con tr͏
- Các thͧ tͥc truy vɢn phân tán : SQl server cung cɢp các thͧ tͥc thͱc thi và quɠn lý các
truy vɢn phân tán . Các truy vɢn phân tán nhɪn vɾ dͯ liʄu không đ͓ng nhɢt tͫ các ngu͓n
kɼt hͣp , bao g͓m m͙t hay nhiɾu CSDL cͧa sql server.
-Các thͧ tͥc vɾ truy vɢn dùng cho các tiɼn trình (agent) trong SQL server : các tiɼn trình
trong sql server sͭ dͥng các thͧ tͥc này đʀ lɪp lʈch cho các tác vͥ .
-Các thͧ tͥc sql Mail : Các thͧ tͥc này đưͣc sͭ dͥng đʀ thͱc hiʄn các thao tác vɾ thư điʄn
tͭ trong sql server.
IV.2 Các thͧ tͥc lưu đinh nghĩa b͟i ngư͝i sͭ dͥng
Bên cɞnh viʄc sͭ dͥng các thͧ tͥc lưu đưͣc cài đɴt sɲn , chúng ta có thʀ tɞo ra nhͯng thͧ
tͥc lưu cͧa riêng mình .
Cú pháp: CREATE PROC[EDURE] TÊN_THͦ _TͤC
Vd : M͙t thͧ tͥc lưu tên là Titles_1389 hiʀn thi chi tiɼt các tiêu đɾ cͧa publisher ID 1389
như sau:
CREATE PROCEDURE Titles_1389
AS ³hiʀn thʈ các tiêu đɾ cho publisher 1389 ´
Select * from titles where pub_id = µ1389¶ như sau:
M͗i thͧ tͥc đưͣc tao ra , sͭ dͥng câu lʄnh EXECUTE đʀ truyɾn tham s͑ và thͱc thi thͧ tͥc .
Lʄnh EXECUTE đʀ lɢy ra các giá trʈ cͧa tiêu đɾ cho publisher voi ID la 0877 sɺ như sau:
Mã trɠ vɾ phɠi trɠ lɞi giá trʈ cͧa chúng vào trong m͙t biɼn s͑. Câu lʄnh đʀ khai báo biɼn s͑
và sͭ sͥng nó trong su͑t quá trình thͱc thi thͧ tͥc là :
VD: Hãy sͭa đ͕i thͧ tͥc Titles_pub đʀ trɠ vɾ giá trʈ 0, giá trʈ mɴc đʈnh cͧa sql server , thͱc
hiʄn thành công thì hiʀn thʈ các hàng . Nɼu không có hàng nào đưͣc tìm thɢy , nó sɺ trɠ vɾ
giá trʈ 1