Computer >> Máy Tính >  >> Lập trình >> SQL Server

PROCEDURE (Thủ tục) trong SQL Server

Quy trình là một chương trình trong cơ sở dữ liệu gồm nhiều câu lệnh mà bạn lưu để sử dụng sau này. Trong SQL Server, bạn có thể chuyển các tham số cho thủ tục, mặc dù nó không trả về một giá trị cụ thể dưới dạng một hàm nhưng cho biết việc thực thi thành công hay không thành công.

Bài viết sẽ cung cấp cho bạn cú pháp và ví dụ về cách tạo và xóa các thủ tục trong SQL Server.

TẠO THỦ TỤC

Cú pháp

Để tạo một thủ tục trong SQL Server, chúng tôi sử dụng cú pháp sau:

  CREATE {PROCEDURE | PROC } [schema_name.]procedure_name PROC} [schema_name.] Procedure_name 
[@parameter [type_schema_name.] datatype
[VARYING] [= default] [OUT | OUTPUT | READONLY]
, @parameter [type_schema_name.] datatype
[VARYING] [= default] [OUT | OUTPUT | READONLY]]

[WITH {ENCRYPTION | RECOMPILE | RECOMPILE | EXECUTE AS Clause } ] EXECUTE AS Clause}]
[FOR REPLICATION]

AS

BEGIN
[declaration_section]

executable_section

END;

Thông số:

  1. schema_name:Giản đồ tên (lược đồ) sở hữu thủ tục.
  2. procedure_name: Tên được chỉ định cho thủ tục
  3. @parameter: Một hoặc nhiều tham số được chuyển vào hàm.
  4. type_schema_name: Loại dữ liệu của lược đồ (nếu có).
  5. Loại dữ liệu: Kiểu dữ liệu cho @parameter.
  6. Mặc định: Giá trị mặc định được gán cho @parameter.
  7. HẾT / ĐẦU RA: @parameter là một tham số đầu ra
  8. SN SÀNG: Quy trình này không thể ghi đè @parameter.
  9. THAM GIA: Mã nguồn của quy trình sẽ không được lưu trữ dưới dạng văn bản trong hệ thống.
  10. NHẬN XÉT: Truy vấn sẽ không được lưu vào bộ nhớ đệm (cache) cho quy trình này.
  11. Mệnh đề EXECUTE AS: Chỉ định bối cảnh bảo mật để thực thi quy trình.
  12. ĐỂ THAY THẾ:The thủ tục đã lưu sẽ chỉ được thực thi trong quá trình sao chép.

Ví dụ

  CREATE PROCEDURE spNhanvien 
@nhanvien_name VARCHAR (50) OUT

AS

BEGIN

DECLARE @nhanvien_id INT;

SET @nhanvien_id = 8;

IF @nhanvien_id <10
SET @nhanvien_name = 'Smith';
ELSE
SET @nhanvien_name = 'Lawrence';

END;

Quy trình trên có tên là spNhanvien, có một tham số là @nhanvien_name, the đầu ra của tham số sẽ dựa trên @nhanvien_id.

Sau đó, bạn có thể thực hiện spNhanvien tham khảo như sau:

  USE [test] 
GO

DECLARE @site_name varchar (50);

EXEC FindSite @site_name OUT;

PRINT @site_name;

GO

Quy trình thả

Khi bạn đã tạo thủ tục thành công, cũng có trường hợp bạn muốn xóa thủ tục khỏi cơ sở dữ liệu vì một vài lý do.

Cú pháp

Để xóa một thủ tục, chúng ta có cú pháp sau:

DROP PROCEDURE procedure_name ;

Thông số:

procedure_name:The tên của thủ tục bạn muốn xóa.

Ví dụ

  DROP PROCEDURE spNhanvien; 

Bằng cách thực hiện lệnh này, bạn vừa xóa spNhan thủ tục từ cơ sở dữ liệu.