Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Một thủ tục được lưu trữ là gì?

Các thủ tục được lưu trữ là một loạt các câu lệnh SQL có thể được thực thi theo một số cách. Hầu hết các DBM chính đều hỗ trợ các thủ tục được lưu trữ; tuy nhiên, không phải tất cả đều như vậy. Bạn sẽ cần xác minh bằng tài liệu trợ giúp DBMS cụ thể của mình để biết các chi tiết cụ thể. Vì tôi quen thuộc nhất với SQL Server, tôi sẽ sử dụng nó làm mẫu của mình.

Để tạo một thủ tục được lưu trữ, cú pháp khá đơn giản:

CREATE PROCEDURE <owner>.<procedure name>

     <Param> <datatype>

AS

     <Body>

Ví dụ:

CREATE PROCEDURE Users_GetUserInfo

    @login nvarchar(30)=null

AS

    SELECT * from [Users]
    WHERE ISNULL(@login,login)=login

Lợi ích của các thủ tục được lưu trữ là bạn có thể tập trung logic truy cập dữ liệu vào một nơi duy nhất mà sau đó DBA có thể dễ dàng tối ưu hóa. Các thủ tục được lưu trữ cũng có một lợi ích bảo mật ở chỗ bạn có thể cấp quyền thực thi cho một thủ tục được lưu trữ nhưng người dùng sẽ không cần phải có quyền đọc / ghi trên các bảng bên dưới. Đây là bước đầu tiên tốt để chống lại việc đưa vào SQL.

Các quy trình được lưu trữ đi kèm với những nhược điểm, về cơ bản là việc bảo trì liên quan đến hoạt động CRUD cơ bản của bạn. Giả sử đối với mỗi bảng bạn có một Chèn, Cập nhật, Xóa và ít nhất một lựa chọn dựa trên khóa chính, điều đó có nghĩa là mỗi bảng sẽ có 4 thủ tục. Bây giờ hãy lấy một cơ sở dữ liệu kích thước vừa phải gồm 400 bảng và bạn có 1600 thủ tục! Và đó là giả sử bạn không có bản sao mà bạn có thể sẽ làm.

Đây là nơi mà việc sử dụng ORM hoặc một số phương pháp khác để tự động tạo các hoạt động CRUD cơ bản của bạn có rất nhiều lợi ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SYSDATETIME () Ví dụ trong SQL Server (T-SQL)

  2. Lỗi đăng nhập máy chủ SQL:Đăng nhập không thành công cho người dùng 'NT AUTHORITY \ SYSTEM'

  3. Cái nhìn đầu tiên về Công cụ ước tính bản số của máy chủ SQL mới

  4. Làm cách nào để thực hiện một số việc như:SỬ DỤNG @databaseName

  5. Lưu byte [] vào cơ sở dữ liệu SQL Server từ C #