Tìm hiểu cách tạo thủ tục được lưu trữ trong sql server 2019. Tạo thủ tục được lưu trữ SQL Server management studio, Tạo thủ tục được lưu trữ SQL Server với các tham số đầu vào và đầu ra, v.v.

Bạn đang xem: tạo một thủ tục được lưu trữ trong máy chủ sql < / a>

Trong hướng dẫn SQL Server này, chúng ta sẽ tìm hiểu về Thủ tục được lưu trữ trong SQL Server Cách tạo thủ tục được lưu trữ trong SQL Server .

Khi tiếp tục, chúng ta sẽ thảo luận về các chủ đề khác như tham số đầu vào, đầu ra trong một quy trình được lưu trữ. Chúng ta cũng sẽ tìm hiểu các phương pháp khác nhau để tạo quy trình được lưu trữ trong SQL Server 2019.

Ngoài ra, chúng tôi sẽ thử các ví dụ khác nhau liên quan đến thủ tục được lưu trữ trong SQL Server . Dưới đây là danh sách chi tiết các chủ đề thảo luận trong bài viết.

  • SQL Server tạo thủ tục đã lưu trữ
  • SQL Server tạo quyền thủ tục đã lưu trữ
  • Tạo thủ tục lưu trữ Studio quản lý SQL Server
  • Tạo thủ tục lưu trữ SQL Server cú pháp
  • SQL Server tạo thủ tục được lưu trữ nếu không tồn tại, nếu không có thì thả
  • SQL Server tạo thủ tục được lưu trữ với các tham số
  • SQL Server tạo thủ tục được lưu trữ với các tham số mặc định
  • Tạo thủ tục được lưu trữ SQL Server với các tham số đầu vào
  • Tạo thủ tục được lưu trữ SQL Server với các tham số đầu vào và đầu ra
  • SQL Server tạo thủ tục được lưu trữ bằng biên dịch lại
  • SQL Server tạo quy trình được lưu trữ mà không cần xác thực
  • SQL Server tạo quy trình được lưu trữ với tham số bảng
  • SQL Server tạo quy trình được lưu trữ trong cơ sở dữ liệu chính
  • SQL Server tạo quy trình được lưu trữ trong cơ sở dữ liệu khác
  • SQL Server tạo quy trình được lưu trữ trong nhiều cơ sở dữ liệu
  • SQL Server cr eate thủ tục được lưu trữ với các biến
  • SQL Server tạo giá trị trả về của thủ tục được lưu trữ
  • Tạo thủ tục được lưu trữ SQL Server không có tham số
  • Tạo thủ tục được lưu trữ với try-catch trong SQL Server

SQL Server tạo quy trình được lưu trữ

Một Thủ tục được lưu trữ trong SQL Server, là một tập hợp các truy vấn được sử dụng để đạt được một số mục tiêu. Nó là một mã SQL đã chuẩn bị sẵn được biên dịch và lưu trữ trong cơ sở dữ liệu và có thể được sử dụng lại nhiều lần. Mục tiêu chính của các thủ tục được lưu trữ là ẩn các truy vấn SQL trực tiếp khỏi mã và tăng tốc các hoạt động cơ sở dữ liệu như chọn, cập nhật và xóa.

Một thủ tục được lưu trữ trên SQL Server rất giống với các thủ tục được tạo bằng các ngôn ngữ khác. Một thủ tục được lưu trữ trong SQL Server có thể thực hiện tác vụ sau.

  • Một thủ tục được lưu trữ có thể chấp nhận nhiều tham số đầu vào và trả về nhiều kết quả bằng cách sử dụng các tham số đầu ra.
  • Một thủ tục được lưu trữ có thể bao gồm các câu lệnh lập trình được sử dụng để thực hiện các hoạt động trên cơ sở dữ liệu. Nó cũng có thể bao gồm việc thực thi các câu lệnh thủ tục khác.
  • Nó trả về giá trị trạng thái thành công hoặc thất bại cho biết lý do thất bại.

Bây giờ, có hai cách để tạo một thủ tục trong SQL Server, trước tiên bằng cách sử dụng truy vấn Transact-SQL. Và phương pháp thứ hai là sử dụng SQL Server Management Studio .

Trong phần này, chúng ta sẽ thảo luận về việc tạo thủ tục được lưu trữ bằng Transact-SQL . Đối với việc triển khai này, chúng ta có thể sử dụng trình soạn thảo truy vấn trong SQL Server Management Studio hoặc chúng ta có thể sử dụng bất kỳ tiện ích dòng lệnh nào được hỗ trợ như SQLCMD.

Tạo thủ tục lưu trữ Cú pháp SQL Server

Để tạo một thủ tục được lưu trữ trong SQL Server , chúng ta phải sử dụng lệnh ‘ CREATE PROCEDURE ‘. Đây là cú pháp hoàn chỉnh để tạo quy trình được lưu trữ trong SQL Server bằng mã Transact-SQL.

 TẠO PROC | PROCEDURE [schema_name.] procedure_name

BẰNG 
BẮT ĐẦU
   sql_statement [;] [... n]
CHẤM DỨT
 
  • schema_name trong cú pháp trên được sử dụng để đại diện cho lược đồ chứa một thủ tục. Các thủ tục được lưu trữ được liên kết với lược đồ trong SQL Server. Vì vậy, nếu chúng tôi không chỉ định schema_name trong khi tạo quy trình, thì lược đồ mặc định của người dùng sẽ tự động được gán cho quy trình.
  • Tên_thủ tục trong cú pháp được sử dụng để đại diện cho tên của thủ tục mà chúng ta muốn tạo. Và tên thủ tục phải là duy nhất trong lược đồ.
  • Từ khóa BEGIN END là tùy chọn để sử dụng trong khi tạo thủ tục. Tuy nhiên, bạn nên sử dụng những từ khóa này vì nó đại diện cho phần nội dung của quy trình.

Bây giờ, sau khi tạo một thủ tục, việc tiếp theo là thực thi thủ tục trong SQL Server. Và đối với điều này, chúng ta có thể triển khai cú pháp sau.

  EXEC [schema_name.] procedure_name;  

Để thực thi, trước tiên, chúng ta phải sử dụng mệnh đề EXEC . Sau đó, chúng ta phải chỉ định tên thủ tục với lược đồ của nó.

Hãy cùng tìm hiểu toàn bộ quá trình triển khai với sự trợ giúp của một ví dụ.

  TẠO QUY TRÌNH  GetAllRecords 
BẰNG 
BẮT ĐẦU
  SELECT [id], [first_name], [giới tính] FROM dbo.SampleTable;
CHẤM DỨT
ĐI  

Trong ví dụ trên, chúng tôi đang tạo một thủ tục với tên “ GetAllRecods “. Và trong quy trình, chúng tôi đang sử dụng câu lệnh SELECT để tìm nạp 3 cột từ bảng mẫu. Bây giờ, nếu chúng ta thực thi đoạn mã trên, chúng ta sẽ nhận được thông báo thành công sau.

SQL Server tạo thủ tục được lưu trữ Ví dụ Thực thi

​​Tiếp theo, để thực thi thủ tục, chúng ta sẽ sử dụng cú pháp sau.

   EXEC  GetAllRecords  

Và sau khi thực hiện thành công quy trình trên, chúng ta sẽ nhận được kết quả sau.

Tạo thủ tục lưu trữ Cú pháp SQL Server Kết quả Thực thi

​​Đọc Cách xem quy trình được lưu trữ trong SQL Server

Máy chủ SQL tạo quyền thủ tục được lưu trữ

Vì vậy, trước khi tạo thủ tục được lưu trữ trong SQL Serve r, thông tin đăng nhập hoặc vai trò cụ thể yêu cầu quyền TẠO THỦ TỤC trong cơ sở dữ liệu. Và nó cũng yêu cầu quyền ALTER trên lược đồ mà thủ tục đang được tạo.

Quyền trong SQL Server là các loại quyền truy cập có thể được cấp cho bảo mật cụ thể. Vì vậy, trong phần này, chúng ta sẽ học cách gán quyền để tạo một thủ tục trong SQL Server.

Như đã thảo luận ở trên, người dùng yêu cầu hai quyền để tạo một thủ tục được lưu trữ trong SQL Server. Đầu tiên là quyền TẠO THỦ TỤC và thứ hai là quyền ALTER ON SCHEMA . Bây giờ, cách đơn giản nhất để cấp quyền là sử dụng truy vấn sau được cung cấp bên dưới.

  CẤP QUY TRÌNH TẠO CHO  user_name ;
CẤP BÁO CÁO TRÊN SCHEMA :: [dbo] CHO  user_name ;  

Trong truy vấn, chúng tôi cần chỉ định tên người dùng thay cho user_name mà chúng tôi muốn cấp quyền truy cập.

Ví dụ: hãy xem xét đoạn mã sau được cung cấp bên dưới.

  CẤP QUY TRÌNH TẠO CHO [sqlUser];
CẤP BÁO CÁO TRÊN SCHEMA :: [dbo] CHO [sqlUser];  

Trong ví dụ trên, chúng tôi cấp quyền truy cập vào tên người dùng “ sqlUser ” để tạo quy trình được lưu trữ.

Đọc Quy trình được lưu trữ trên Máy chủ SQL nếu khác

Tạo thủ tục lưu trữ Studio quản lý SQL Server

Có hai cách tạo quy trình được lưu trữ bằng SQL Server Management Studio . Đầu tiên là bằng cách sử dụng trình soạn thảo truy vấn để thực hiện truy vấn Transact-SQL để tạo một thủ tục. Mã Transact-SQL để tạo quy trình đã được giải thích ở trên.

Và phương pháp thứ hai là sử dụng các tùy chọn GUI (giao diện người dùng đồ họa) có sẵn trong SQL Server Management Studio để tạo một quy trình.

Trong phần này, chúng ta sẽ thảo luận về các tùy chọn GUI và hiểu các bước mà chúng ta cần làm theo trong SQL Server Management Studio để tạo một quy trình.

Đối với phần trình diễn này, hãy làm theo các bước nhất định được minh họa bên dưới.

  • Trước tiên, hãy kết nối với một phiên bản của Công cụ cơ sở dữ liệu bằng cách sử dụng thông tin đăng nhập chính xác.
  • Bây giờ, trong Trình khám phá đối tượng , hãy mở rộng Cơ sở dữ liệu mà bạn muốn tạo quy trình .
  • Tiếp theo, mở rộng thư mục Khả năng lập trình , nhấp chuột phải vào tùy chọn Quy trình đã lưu trữ và nhấp vào “Quy trình đã lưu trữ….” . Nó sẽ mở một mẫu trống trong trình soạn thảo truy vấn mà chúng ta có thể sử dụng để tạo một quy trình.

Tạo thủ tục được lưu trữ bằng SQL Server Management Studio Tùy chọn Thủ tục Đã Lưu trữ trong SSMS

Mẫu do SQL Server tạo sẽ có mã mẫu sau.

   - ================================= ==================
- Mẫu được tạo từ Template Explorer bằng cách sử dụng:
- Tạo thủ tục (Menu mới) .SQL
-
- Sử dụng các Giá trị Chỉ định cho các Tham số Mẫu
- lệnh (Ctrl-Shift-M) để điền thông số
- giá trị bên dưới.
-
- Khối bình luận này sẽ không được đưa vào
- định nghĩa của thủ tục.
- ================================================ 
BẬT ANSI_NULLS
ĐI
BẬT QUOTED_IDENTIFIER
ĐI
 - =============================================
- Tác giả: & lt; Tác giả ,, Tên & gt;
- Tạo ngày: & lt; Tạo Ngày ,, & gt;
- Mô tả: & lt; Description ,, & gt;
- ======================================================== >
TẠO THỦ TỤC & lt; Procedure_Name, sysname, ProcedureName & gt;
 - Thêm các tham số cho quy trình được lưu trữ tại đây 
        & lt; @ Param1, sysname, @ p1 & gt; & lt; Datatype_For_Param1,, int & gt; = & lt; Default_Value_For_Param1,, 0 & gt ;,
& lt; @ Param2, sysname, @ p2 & gt; & lt; Datatype_For_Param2,, int & gt; = & lt; Default_Value_For_Param2,, 0 & gt;
BẰNG 
BẮT ĐẦU
 - ĐẶT SỐ KHOẢN BẬT được thêm vào để ngăn các tập hợp kết quả bổ sung từ
- can thiệp vào các câu lệnh SELECT. 
ĐẶT SỐ TÀI KHOẢN BẬT;

     - Chèn câu lệnh cho thủ tục tại đây 
CHỌN & lt; @ Param1, sysname, @ p1 & gt ;, & lt; @ Param2, sysname, @ p2 & gt;
CHẤM DỨT
ĐI
 
  • Bây giờ chúng ta dễ dàng tạo một thủ tục bằng cách cập nhật mẫu theo nhu cầu của chúng ta. Và nhấp vào tùy chọn “ Thực thi ”. Đây là một ví dụ nhỏ về mẫu được cập nhật.
   - ================================= ==================
- Mẫu được tạo từ Template Explorer bằng cách sử dụng:
- Tạo thủ tục (Menu mới) .SQL
-
- Sử dụng các Giá trị Chỉ định cho các Tham số Mẫu
- lệnh (Ctrl-Shift-M) để điền thông số
- giá trị bên dưới.
-
- Khối bình luận này sẽ không được đưa vào
- định nghĩa của thủ tục.
- ================================================ 
BẬT ANSI_NULLS
ĐI
BẬT QUOTED_IDENTIFIER
ĐI
 - =============================================
- Tác giả: sqlserverguides
- Ngày tạo: 19-07-2021
- Mô tả: Nó sẽ lấy tất cả các bản ghi nữ
- ======================================================== >
TẠO THỦ TỤC GetFemaleRecords
BẰNG 
BẮT ĐẦU
 - ĐẶT SỐ KHOẢN BẬT được thêm vào để ngăn các tập hợp kết quả bổ sung từ
- can thiệp vào các câu lệnh SELECT. 
ĐẶT SỐ TÀI KHOẢN BẬT;

     - Chèn câu lệnh cho thủ tục tại đây 
CHỌN [id], [first_name], [last_name], [giới tính] FROM dbo.SampleTable
CHẤM DỨT
ĐI
 
  • Ví dụ trên sẽ lấy tất cả các bản ghi cái từ bảng mẫu.
  • Bây giờ để thực hiện quy trình lưu trữ đã tạo, hãy mở rộng tùy chọn “ Quy trình đã lưu trữ ”.
  • Tiếp theo, nhấp chuột phải vào quy trình và nhấp vào “ Tùy chọn Execute Stored Procedure .. ”.

Tạo thủ tục lưu trữ SQL Server management studio Tùy chọn thực thi trong SSMS

Đây là cách tạo quy trình được lưu trữ bằng SQL Server management studio.

Đọc Quy ước đặt tên thủ tục được lưu trữ trên SQL Server và các phương pháp hay nhất

SQL Server tạo quy trình được lưu trữ với các tham số

Sức mạnh của một thủ tục được lưu trữ nằm ở khả năng có nhiều tham số. Một tham số được sử dụng để gửi và nhận dữ liệu giữa các thủ tục và hàm được lưu trữ và chương trình hoặc công cụ đã gọi chúng.

Một thủ tục được lưu trữ trong SQL Server có thể có hai loại tham số. Đầu tiên là tham số đầu vào và thứ hai là tham số đầu ra .

  • Một tham số đầu vào được sử dụng để chuyển giá trị dữ liệu từ trình gọi đến thủ tục được lưu trữ. Và giá trị dữ liệu có thể được sử dụng trong thủ tục đã lưu trữ.
  • Một tham số đầu ra được sử dụng để trả về giá trị dữ liệu từ một thủ tục đã lưu trữ cho trình gọi của thủ tục đó.
  • Một thủ tục được lưu trữ cũng có thể trả về một mã số nguyên cho người gọi. Và quy trình sẽ trả về 0 nếu chúng ta không đặt một giá trị cụ thể để được trả về.

Và, trong phần này, chúng ta sẽ thảo luận về cả việc triển khai tạo một thủ tục được lưu trữ với các tham số đầu vào và đầu ra. Và chúng tôi cũng sẽ triển khai một số ví dụ liên quan đến nó.

Tạo SQL Server thủ tục được lưu trữ với các tham số đầu vào

Một tham số đầu vào chủ yếu được sử dụng để gửi các giá trị dữ liệu từ trình gọi đến thủ tục. Và sau đó, các giá trị dữ liệu có thể được sử dụng trong quy trình cho một số xử lý. Ví dụ: tìm nạp tất cả các bản ghi từ bảng dựa trên tên bộ phận được chuyển làm tham số đầu vào hoặc sử dụng nhiều tham số đầu vào để chèn bản ghi trong bảng.

Đây là cú pháp chung mà chúng ta có thể sử dụng để tạo một thủ tục được lưu trữ với các tham số đầu vào.

  TẠO QUY TRÌNH  procedure_name 
(Kiểu dữ liệu @ tham số_1,  - tham số đầu vào 
  kiểu dữ liệu @ tham số_2,
  ...
)
BẰNG 
BẮT ĐẦU
   ĐẶT SỐ TÀI KHOẢN BẬT
    sql_statement 
HẾT  

Bây giờ, hãy sử dụng cú pháp để tạo quy trình có tham số đầu vào . Và để triển khai này, chúng tôi sẽ sử dụng đoạn mã sau được cung cấp bên dưới.

  TẠO QUY TRÌNH  GetDeptRecords 
(@DeptName VARCHAR (50))  - thông số đầu vào 
BẰNG 
BẮT ĐẦU
ĐẶT SỐ TÀI KHOẢN BẬT
 
CHỌN [Tên], [giới tính], [Bộ phận] TỪ Bảng ký gửi
WHERE [Bộ phận] = @ DeptName
 
HẾT  

Trong ví dụ trên, chúng tôi đang tạo một thủ tục với một tham số đầu vào . Và chúng tôi đang sử dụng tham số đầu vào này để tìm nạp tất cả các bản ghi của một bộ phận trong đó tên bộ phận bằng với tham số đầu vào đã truyền.

Bây giờ trong khi thực hiện thủ tục, chúng ta phải chuyển giá trị của tham số đầu vào. Trong ví dụ của chúng tôi, chúng tôi đã tạo một tham số đầu vào của kiểu dữ liệu chuỗi, vì vậy, chúng tôi cần truyền giá trị chuỗi.

  EXEC GetDeptRecords  'Legal'   

Và, nếu chúng tôi thực hiện truy vấn ở trên, quy trình được lưu trữ sẽ trả về tất cả các bản ghi có tên bộ phận là “ Pháp lý “.

Tạo thủ tục lưu trữ SQL Server với tham số đầu vào Final Output

Đây là cách tạo thủ tục được lưu trữ trong SQL Server với các tham số đầu vào .

Tạo SQL Server thủ tục được lưu trữ với các tham số đầu vào và đầu ra

Ngoài tham số đầu vào, một thủ tục được lưu trữ cũng có thể có tham số đầu ra. Kết quả là một tham số đầu ra được sử dụng để trả về giá trị dữ liệu từ thủ tục tới trình gọi. Chúng ta có thể có nhiều tham số đầu vào cũng như đầu ra trong một thủ tục được lưu trữ.

Để tạo một tham số đầu ra, chúng ta phải chỉ định từ khóa OUT hoặc OUTPUT với tham số trong quy trình.

Đây là cú pháp chung mà chúng tôi có thể sử dụng để tạo quy trình được lưu trữ với các tham số đầu ra .

  TẠO THỦ TỤC procedure_name 
(Kiểu dữ liệu @ tham số_1,  - tham số đầu vào 
  @ tham số_2 loại dữ liệu OUTPUT,  - tham số đầu ra 
  ...
)
BẰNG 
BẮT ĐẦU
   ĐẶT SỐ TÀI KHOẢN BẬT
    sql_statement 
HẾT  

Để hiểu rõ hơn, hãy hiểu cách triển khai này với sự trợ giúp của ví dụ.

  THỦ TỤC THAY THẾ GetDeptRecords
(
  @DeptName VARCHAR (50),  tham số --input 
  @Count INT OUTPUT  - thông số đầu ra 
)
BẰNG 
BẮT ĐẦU
ĐẶT SỐ TÀI KHOẢN BẬT
 
CHỌN [Tên], [giới tính], [Bộ phận] TỪ Bảng ký gửi
WHERE [Bộ phận] = @ DeptName

ĐẶT @Count = @@ ROWCOUNT
 
HẾT  

Trong ví dụ trên, chúng tôi đã tạo một thủ tục với một tham số đầu vào và một tham số đầu ra . Và trong thủ tục, chúng tôi đang tìm nạp tất cả các bản ghi dựa trên bộ phận bằng cách sử dụng tham số đầu vào. Sau đó, chúng tôi đang sử dụng tham số đầu ra để nhận tổng số bản ghi được trả về bởi câu lệnh SELECT.

Lưu ý- @@ ROWCOUNT là một biến hệ thống trả về số hàng bị ảnh hưởng bởi câu lệnh được thực thi cuối cùng.

Tiếp theo, để thực hiện quy trình trên, chúng ta phải sử dụng truy vấn sau.

  DECLARE @count INT

EXEC GetDeptRecords 'Legal', @count OUTPUT

CHỌN @count NHƯ 'Tổng số bản ghi'  
  • Đầu tiên, chúng ta phải khai báo một biến đếm sẽ lưu giá trị được trả về bởi tham số đầu ra.
  • Tiếp theo, chúng tôi đã cung cấp giá trị của tham số đầu vào trong câu lệnh thực thi.
  • Sau đó, chúng tôi đã chỉ định biến đếm làm giá trị của tham số đầu ra. Nó sẽ lưu giá trị được trả về bởi tham số đầu ra trong biến count.
  • Và sau đó, chúng ta có thể dễ dàng sử dụng biến count để hiển thị kết quả bằng câu lệnh SELECT.

Sau khi thực hiện thành công ví dụ trên, chúng ta sẽ nhận được kết quả như sau.

Tạo thủ tục lưu trữ SQL Server với các tham số đầu vào và đầu ra Kết quả cuối cùng

Đây là cách tạo quy trình được lưu trữ trong SQL Server 2019 với thông số đầu vào và đầu ra .

Đọc Chèn thủ tục SQL Server được lưu trữ với các ví dụ

SQL Server tạo thủ tục được lưu trữ với các tham số mặc định

Trước khi tạo quy trình được lưu trữ với tham số mặc định , hãy hiểu nhu cầu về tham số mặc định.

Đối với điều này, chúng tôi đang tiếp tục quy trình GetDeptRecords của chúng tôi để trả về các bản ghi của một bộ phận dựa trên tham số đầu vào. Và nó có mã sau.

  TẠO THỦ TỤC TẠO GetDeptRecords
(
  @DeptName VARCHAR (50)  - thông số đầu vào 
)
BẰNG 
BẮT ĐẦU
ĐẶT SỐ TÀI KHOẢN BẬT
 
CHỌN [Tên], [giới tính], [Bộ phận] TỪ Bảng ký gửi
WHERE [Bộ phận] = @ DeptName
 
HẾT  

Và điều gì sẽ xảy ra nếu chúng tôi không chỉ định bất kỳ giá trị nào cho tham số đầu vào trong quá trình thực thi. Máy chủ SQL sẽ trả về lỗi sau.


Máy chủ SQL tạo thủ tục được lưu trữ mà không có tham số mặc định Error

Hiện có thể có nhiều lần xuất hiện trong đó NULL hoặc không có giá trị nào được chỉ định cho thủ tục. Để khắc phục những tình huống như vậy, chúng ta có thể sử dụng tham số mặc định trong một thủ tục được lưu trữ. Các tham số mặc định mang giá trị mặc định sẽ được sử dụng khi không có giá trị nào được chỉ định.

Cú pháp chuẩn được sử dụng để tạo quy trình với tham số mặc định được cung cấp bên dưới.

  TẠO THỦ TỤC procedure_name
(@ tham số_1 datatype = default_value,
  @ tham số_2 datatype = default_value,
  ...
)
BẰNG 
BẮT ĐẦU
   ĐẶT SỐ TÀI KHOẢN BẬT
   Câu lệnh sql
HẾT  

Để trình diễn, hãy cập nhật quy trình GetDeptRecords của chúng tôi và chỉ định giá trị mặc định cho nó.

 ALTER THỦ TỤC GetDeptRecords
(
  @DeptName VARCHAR (50) = 'Hợp pháp'
)
BẰNG 
BẮT ĐẦU
ĐẶT SỐ TÀI KHOẢN BẬT
 
CHỌN [Tên], [giới tính], [Bộ phận] TỪ Bảng ký gửi
WHERE [Bộ phận] = @ DeptName
 
HẾT  

Vì vậy, bây giờ thủ tục của chúng tôi sẽ trả lại hồ sơ của bộ phận pháp lý khi không có giá trị nào được chỉ định trong quá trình thực thi.

Máy chủ SQL tạo thủ tục được lưu trữ với các tham số mặc định Ví dụ về Thực thi

​​Đây là cách tạo quy trình được lưu trữ với các tham số mặc định trong máy chủ sql 2019 hoặc máy chủ sql 2017.

Tạo SQL Server thủ tục được lưu trữ mà không có tham số

Các tham số trong thủ tục được lưu trữ của SQL Server là tùy chọn để sử dụng. Chúng ta cũng có thể tạo một thủ tục mà không cần sử dụng bất kỳ tham số nào. Thủ tục được lưu trữ không có bất kỳ tham số nào là dạng thủ tục đơn giản nhất và chúng thường được sử dụng khi chúng tôi chỉ yêu cầu trả về một số tập kết quả.

Để minh họa, hãy xem xét ví dụ sau được đưa ra bên dưới.

  TẠO THỦ TỤC TẠO GetDeptRecords
BẰNG 
BẮT ĐẦU
ĐẶT SỐ TÀI KHOẢN BẬT
 
CHỌN TOP 5 [Tên], [Bộ phận] TỪ Bảng tổng hợp
 
HẾT  

Trong ví dụ trên, chúng tôi đã tạo một thủ tục đơn giản sẽ trả về năm bản ghi đầu tiên của cột tên và phòng ban từ một bảng.

Và sau khi thực hiện thành công quy trình trên, chúng ta sẽ nhận được kết quả như sau.

Tạo thủ tục lưu trữ SQL Server không có tham số Kết quả

Đây là cách tạo thủ tục được lưu trữ trong SQL Server mà không có tham số .

< p class = "ezoic-adpicker-ad" id = "ezoic-pub-ad-placeholder-119">

Đọc Tham số đầu ra thủ tục được lưu trữ của Máy chủ SQL

SQL Server tạo thủ tục được lưu trữ với tham số bảng

Trong khi làm việc với các thủ tục, chúng tôi có thể gặp phải tình huống cần chuyển nhiều hàng dữ liệu cho thủ tục. Để khắc phục những tình huống như vậy, chúng ta cần sử dụng các tham số có giá trị bảng trong một quy trình được lưu trữ.

Vì vậy, trong phần này, chúng ta sẽ hiểu cách tạo tham số có giá trị bảng trong thủ tục được lưu trữ trên SQL Server .

Để chuyển tham số có giá trị bảng vào một thủ tục được lưu trữ, chúng ta phải làm theo các bước sau.

  • Đầu tiên, hãy tạo loại bảng do người dùng xác định theo yêu cầu.
  • Tiếp theo, chuyển loại bảng do người dùng xác định làm tham số cho thủ tục được lưu trữ.
  • Bây giờ, bên trong quy trình, hãy xử lý dữ liệu theo nhu cầu.

Vì vậy, hãy hiểu cách tạo loại bảng do người dùng xác định trong SQL Server. Loại bảng do người dùng xác định là một bảng được xác định trước được sử dụng để lưu trữ dữ liệu tạm thời. Và tương tự như bảng, chúng ta có thể xác định các loại dữ liệu và thuộc tính của chúng bằng cách sử dụng loại bảng.

Đây là cú pháp tiêu chuẩn được sử dụng để tạo loại bảng do người dùng xác định trong SQL Server.

  TẠO LOẠI  type_name  LÀM BẢNG
(
    kiểu dữ liệu column_1,
    kiểu dữ liệu cột_2,

    ...
)
Bắt đầu  

Để trình bày, hãy xem xét ví dụ sau được sử dụng để tạo loại bảng do người dùng xác định.

  TẠO LOẠI  EmpTableType  AS BẢNG
(
    [id] INT KEY CHÍNH,
    [Tên] VARCHAR (50),
    [Bộ phận] VARCHAR (50)
)
Bắt đầu  

Trong ví dụ trên, chúng ta đã tạo một kiểu bảng có 3 cột, tương tự như tạo bảng. Và chúng tôi sẽ sử dụng bảng này sâu hơn trong ví dụ của chúng tôi.

Vì vậy, sau khi tạo loại bảng do người dùng xác định, hãy tạo một thủ tục được lưu trữ và cố gắng chuyển loại bảng dưới dạng tham số cho một thủ tục được lưu trữ.

Đối với phần trình diễn này, chúng tôi sẽ thực thi đoạn mã sau được cung cấp bên dưới.

  TẠO QUY TRÌNH InsertEmpRecords
@EmpType EmpTableType ĐÃ SN SÀNG
BẰNG 
BẮT ĐẦU
    CHÈN VÀO EmpTable
    CHỌN * TỪ @EmpType
HẾT  

Trong ví dụ này, chúng tôi đã tạo một thủ tục chấp nhận EmpTableType làm tham số. Và trong quy trình, chúng tôi đang sử dụng tham số có giá trị bảng để chọn và chèn tất cả các bản ghi trong bảng EmpTable . Điều quan trọng là sử dụng mệnh đề READONLY với tham số, nếu không, điều này sẽ gây ra lỗi thời gian chạy.

Bước cuối cùng là tạo một biến EmpTableType và điền vào nó một số dữ liệu. Và sau đó, chuyển nó vào thủ tục được lưu trữ InsertEmpRecords. Đối với điều này, chúng tôi sẽ thực thi tập lệnh sau.

  DECLARE @EmpRecord EmpTableType

CHÈN VÀO GIÁ TRỊ @EmpRecord (1, 'Richie', 'Kỹ thuật')
CHÈN VÀO GIÁ TRỊ @EmpRecord (2, 'Adella', 'Tiếp thị')
CHÈN VÀO GIÁ TRỊ @EmpRecord (3, 'Terence', 'Bán hàng')
CHÈN VÀO GIÁ TRỊ @EmpRecord (4, 'Carlen', 'Đào tạo')
CHÈN VÀO GIÁ TRỊ @EmpRecord (5, 'Liv', 'Legal')

THỰC HIỆN InsertEmpRecords @EmpRecord  

Trong tập lệnh, chúng tôi đã khai báo một biến kiểu EmpTableType. Và sau đó, chúng tôi đang chèn một số giá trị trong biến giá trị bảng. Cuối cùng, chúng ta đang chuyển tham số có giá trị bảng vào thủ tục được lưu trữ. Bây giờ, nếu chúng ta truy vấn bảng EmpTable, chúng ta sẽ nhận được kết quả sau.

Máy chủ SQL tạo thủ tục được lưu trữ với tham số bảng Kết quả

Sau khi thực hiện thành công các bước trên, chúng tôi đã tạo một thủ tục với một tham số có giá trị bảng.

Đây là cách tạo thủ tục được lưu trữ với tham số bảng trong máy chủ sql 2019.

Đọc Các hàm PostgreSQL DATE với các ví dụ

SQL Server tạo quy trình được lưu trữ với biên dịch lại

Trong phần này, chúng ta sẽ tìm hiểu cách tạo một thủ tục được lưu trữ với tính năng biên dịch lại trong SQL Server , Nhưng trước khi tạo thủ tục, hãy hiểu sự cần thiết phải biên dịch lại một thủ tục được lưu trữ trong SQL Server.

  • Bất cứ khi nào một thủ tục được biên dịch lần đầu tiên, kế hoạch truy vấn thủ tục được tối ưu hóa theo trạng thái cơ sở dữ liệu hiện tại. Bây giờ, điều gì sẽ xảy ra nếu cơ sở dữ liệu trải qua một số thay đổi về dữ liệu hoặc cấu trúc. Trong những trường hợp như vậy, việc biên dịch lại sẽ cập nhật kế hoạch truy vấn thủ tục và cải thiện hiệu suất thủ tục.
  • Các thủ tục có thể được biên dịch lại ở cấp câu lệnh trong SQL Server. Khi SQL Server biên dịch lại các thủ tục được lưu trữ, nó chỉ biên dịch câu lệnh nhắc quá trình biên dịch lại, không phải toàn bộ quy trình.
  • Nếu chắc chắn các truy vấn trong thủ tục được lưu trữ thường xuyên sử dụng các giá trị tạm thời, sau đó việc biên dịch lại có thể làm giảm hiệu suất của thủ tục.

Chúng tôi có thể dễ dàng tạo một thủ tục với tùy chọn biên dịch lại bằng cách sử dụng cú pháp sau.

  TẠO QUY TRÌNH  procedure_name 
(
  kiểu dữ liệu tham số_1,
  ...
)
 CÓ NGƯỜI NHẬN XÉT 
BẰNG 
BẮT ĐẦU
    ĐẶT SỐ TÀI KHOẢN BẬT;
    Câu lệnh sql
HẾT  

Để minh họa, hãy xem ví dụ sau được minh họa bên dưới.

  TẠO QUY TRÌNH  dbo.uspDeptRecords 
(@DeptName VARCHAR (50))
 CÓ NGƯỜI NHẬN XÉT 
BẰNG 
BẮT ĐẦU
    ĐẶT SỐ TÀI KHOẢN BẬT;
    CHỌN [Tên] NHƯ 'Tên nhân viên',
[Bộ phận] NHƯ 'Tên bộ phận' TỪ [DeptTable]
    WHERE [Department] = @DeptName
HẾT  

Trong ví dụ trên, chúng tôi đã tạo một thủ tục trả về bản ghi của một bảng dựa trên tên bộ phận được chuyển làm tham số đầu vào. Và chúng tôi cũng đã chỉ định điều khoản RECOMPILE trong thủ tục. Nó sẽ biên dịch lại quy trình mỗi lần khi nó được thực thi.

SQL Server tạo quy trình được lưu trữ mà không cần xác thực

Khi chúng tôi tạo một thủ tục được lưu trữ trong SQL Server , SQL Server sẽ biên dịch thủ tục và tạo một kế hoạch thực thi cho nó. Nó chỉ đơn giản có nghĩa là tất cả các đối tượng trong thủ tục đều được xác nhận. Kế hoạch thực hiện vẫn có hiệu lực miễn là quy trình không thay đổi.

Máy chủ SQL sẽ không tạo kế hoạch thực thi cho các thủ tục tham chiếu đến một đối tượng bảng không tồn tại. Tuy nhiên, quy trình có thể được tạo nếu không có lỗi nào khác được xác định.

Để minh họa, chúng tôi sẽ tạo một quy trình được lưu trữ sử dụng một bảng không tồn tại.

  TẠO PROC sample_usp
BẰNG 
BẮT ĐẦU
CHỌN [id], [name], [age] FROM [nonexistingTable]
HẾT  

Và nếu chúng tôi thực thi tập lệnh trên, quy trình sẽ được tạo thành công

SQL Server tạo thủ tục được lưu trữ mà không cần xác thực Ví dụ về thực thi

​​Đây là cách tạo quy trình được lưu trữ mà không cần xác thực trong máy chủ sql .

Đọc PostgreSQL ADD COLUMN + 17 Ví dụ

Máy chủ SQL tạo quy trình được lưu trữ với các biến

Một biến trong SQL Server là một đối tượng có thể lưu trữ một giá trị duy nhất của một kiểu dữ liệu cụ thể. Ví dụ, ngày tháng, số nguyên, ký tự thay đổi. Để sử dụng một biến trong SQL Server, trước tiên, chúng ta cần khai báo nó, sau đó chúng ta có thể sử dụng nó để gán một số giá trị.

Và để khai báo một biến trong SQL Server, chúng ta có thể sử dụng cú pháp sau.

  DECLARE @variable_name datatype;  

Để khai báo một biến, chúng ta phải sử dụng câu lệnh DECLARE giúp khởi tạo biến với tên biến và kiểu dữ liệu. Ngoài ra, tên biến luôn phải bắt đầu bằng dấu “ @ ”. Và khi một biến được khai báo, giá trị của nó được đặt thành NULL theo mặc định.

Một biến có thể được sử dụng ở nhiều nơi, một cách sử dụng phổ biến của biến là lưu trữ các giá trị được trả về bởi một thủ tục được lưu trữ. Vì vậy, trong phần này, chúng ta sẽ hiểu cách tạo một thủ tục được lưu trữ với các biến.

Để minh họa, hãy xem xét ví dụ sau được đưa ra bên dưới.

  TẠO PROC uspGetEmpList
BẰNG 
BẮT ĐẦU
    DECLARE @emp_list VARCHAR (MAX);
    SET @emp_list = '';

    SELECT @emp_list = @emp_list + [Tên] + 'thuộc "" + [Phòng] +' "phòng"
+ CHAR (10)
    TỪ [DeptTable]
    
    IN @emp_list;
HẾT;  

Trong ví dụ trên, chúng tôi đã tạo một thủ tục được lưu trữ trả về tên và bộ phận của tất cả nhân viên. Và đối với việc triển khai này, chúng tôi đang sử dụng biến để lưu trữ tên và chuỗi phòng ban. Bây giờ, nếu chúng ta thực hiện thủ tục, chúng ta sẽ nhận được kết quả sau.

Máy chủ SQL tạo thủ tục được lưu trữ với các biến Kết quả cuối cùng

Đây là cách tạo thủ tục được lưu trữ với các biến trong máy chủ sql 2019.

Máy chủ SQL tạo giá trị trả về thủ tục được lưu trữ

Chủ yếu có 2 phương thức mà qua đó chúng ta có thể trả về một giá trị từ các thủ tục được lưu trữ. Phương pháp đầu tiên là sử dụng tham số đầu ra và phương pháp thứ hai là sử dụng mã trả về.

Vì vậy, việc tạo thủ tục được lưu trữ với các tham số đầu ra đã được giải thích trong chủ đề trước. Bây giờ, trong phần này, chúng ta sẽ học cách tạo một thủ tục được lưu trữ trả về các giá trị bằng cách sử dụng mã trả về.

Một thủ tục được lưu trữ trong SQL Server có thể trả về giá trị số nguyên cho trình gọi. Các giá trị số nguyên này được gọi là mã trả về và những mã này được sử dụng để chỉ ra trạng thái thực thi của một thủ tục. Và theo mặc định, giá trị để thực hiện thành công quy trình là 0.

Để chỉ định mã trả lại, chúng ta phải sử dụng câu lệnh RETURN. Và chúng tôi cũng cần lưu trữ mã trả về trong một biến tại thời điểm thực thi.

Ví dụ: hãy xem xét tập lệnh sau được cung cấp bên dưới.

  TẠO THỦ TỤC [dbo]. [GetAllRecords]
BẰNG 
BẮT ĐẦU
SELECT [id], [first_name], [giới tính] FROM dbo.SampleTable;
CHẤM DỨT
ĐI  

Trong ví dụ trên, chúng tôi đã tạo một thủ tục đơn giản và thủ tục này tìm nạp tất cả các bản ghi từ một bảng.

Tiếp theo, để lấy mã trả về, trước tiên, chúng ta phải khai báo một biến số nguyên. Sau đó, chúng ta phải sử dụng biến trong câu lệnh thực thi. Và sau đó, chúng ta có thể dễ dàng sử dụng biến để lấy mã trả về. Mã để triển khai điều này được cung cấp bên dưới.

  DECLARE @return_code INT
EXEC @return_code = GetAllRecords

CHỌN @return_code AS 'Mã trả lại'  

Khi ví dụ của chúng tôi được thực thi thành công, chúng tôi sẽ nhận được mã trả về 0.

Máy chủ SQL tạo giá trị trả về thủ tục được lưu trữ Đầu ra

Đây là cách tạo giá trị trả về thủ tục được lưu trữ trong máy chủ sql .

Đọc PostgreSQL và SQL Server: So sánh chi tiết

SQL Server tạo quy trình được lưu trữ trong cơ sở dữ liệu khác

Trong SQL Server, chúng tôi có thể dễ dàng tạo quy trình được lưu trữ trong bất kỳ cơ sở dữ liệu cụ thể nào . Đối với việc triển khai này, chúng ta chỉ cần sử dụng câu lệnh “ SỬ DỤNG cơ sở dữ liệu ” trước khi tạo quy trình. Câu lệnh “ USE ” được sử dụng để chọn bất kỳ cơ sở dữ liệu hiện có nào từ SQL Server.

Để trình bày, hãy xem xét cú pháp sau được minh họa bên dưới.

  SỬ DỤNG  cơ sở dữ liệu  - chỉ định tên cơ sở dữ liệu tại đây
ĐI

TẠO PROC  procedure_name  - thủ tục tạo
BẰNG 
BẮT ĐẦU
   sql_statement 
HẾT  

Hãy hiểu cách triển khai với sự trợ giúp của một ví dụ.

  SỬ DỤNG sqlserverguides
ĐI

TẠO PROC SampleProc
BẰNG 
BẮT ĐẦU
  CHỌN [tên], [Bộ phận] TỪ [Bảng trống]
CHẤM DỨT
ĐI  

Trong ví dụ trên, chúng tôi đã sử dụng câu lệnh “ SỬ DỤNG ” để tạo quy trình được lưu trữ trong cơ sở dữ liệu sqlserverguides .

Đây là cách tạo quy trình được lưu trữ trong cơ sở dữ liệu khác trong máy chủ sql 2019/2017.

Tạo quy trình được lưu trữ với try-catch trong SQL Server

Khối TRY-CATCH trong SQL Server được sử dụng để xử lý lỗi cho Transact-SQL. Trong SQL Server, xử lý lỗi cung cấp cho chúng tôi quyền kiểm soát đối với mã Transact-SQL. Vì vậy, khi mọi thứ diễn ra sai, chúng ta có cơ hội để phản ứng và có thể khắc phục tình hình.

Một khối TRY có thể bao gồm một loạt các câu lệnh Transact-SQL. Nếu lỗi xảy ra trong khối TRY, quyền điều khiển sẽ được chuyển cho khối CATCH, khối này chứa một tập hợp các câu lệnh khác. Và chúng tôi có thể truy xuất thông tin chi tiết về lỗi đã xảy ra bằng cách sử dụng các chức năng sau bên trong khối CATCH:

FunctionDescriptionERROR_LINE () Nó trả về số dòng mà ngoại lệ đã xảy ra.ERROR_MESSAGE () Nó trả về văn bản hoàn chỉnh của thông báo lỗi đã tạo.ERROR_PROCEDURE () Nó trả về tên của thủ tục được lưu trữ hoặc trình kích hoạt xảy ra lỗi.ERROR_NUMBER () Nó trả về số của lỗi đã xảy ra.ERROR_SEVERITY () Nó trả về mức độ nghiêm trọng của lỗi đã xảy ra.ERROR_STATE () Nó trả về số trạng thái của lỗi đã xảy ra.

Đây là cú pháp chuẩn mà chúng tôi có thể sử dụng để triển khai khối TRY-CATCH trong SQL Server.

  BẮT ĐẦU THỬ
    - câu lệnh có thể gây ra ngoại lệ 
HẾT THỬ
BẮT ĐẦU
    - câu lệnh xử lý ngoại lệ 
KẾT THÚC MÈO  

Và chúng tôi cũng có thể sử dụng khối TRY-CATCH trong một quy trình được lưu trữ để xử lý lỗi. Trên thực tế, việc tạo thủ tục được lưu trữ bằng khối TRY-CATCH được coi là phương pháp hay nhất liên quan đến thủ tục.

Bây giờ, hãy hiểu cách triển khai này với sự trợ giúp của một ví dụ. Và đối với điều này, hãy xem xét kịch bản sau được cung cấp bên dưới.

  TẠO THỦ TỤC [dbo]. [uspDivision]
(@x int, @y int, @z int OUT)
BẰNG 
BẮT ĐẦU
   BẮT ĐẦU THỬ 
    ĐẶT @z = @x / @y
   KẾT THÚC THỬ
  BẮT ĐẦU MÈO 
    SELECT ERROR_NUMBER () AS ErrorNumber,
ERROR_SEVERITY () AS ErrorSeverity,
ERROR_STATE () AS ErrorState,
ERROR_PROCEDURE () AS ErrorProcedure,
ERROR_LINE () AS ErrorLine,
ERROR_MESSAGE () AS ErrorMessage;
   KẾT THÚC MÈO 
CHẤM DỨT
ĐI  

Trong ví dụ trên, chúng tôi đã tạo một thủ tục sẽ tính toán phép chia giữa 2 biến số nguyên. Và sau khi tính toán, nó sẽ trả về kết quả là một tham số đầu ra. Trong quy trình, chúng tôi đã đặt phần tính toán trong khối TRY và để xử lý lỗi, chúng tôi đang sử dụng hàm chi tiết lỗi trong khối CATCH . Vì vậy, nếu có lỗi xảy ra khi phân chia thì hàm trong khối CATCH sẽ được thực thi trước.

Để minh họa, hãy gặp lỗi khi chia một số nguyên nào đó cho không. Trong trường hợp này, quy trình sẽ trả về kết quả sau.

Tạo thủ tục được lưu trữ với try catch trong SQL Server Kết quả

Đây là cách tạo thủ tục được lưu trữ với try-catch trong SQL Server 2019/2017.

SQL Server tạo quy trình được lưu trữ trong nhiều cơ sở dữ liệu

Trong phần này, chúng ta sẽ tìm hiểu cách tạo một thủ tục được lưu trữ trong nhiều cơ sở dữ liệu SQL Server .

Giờ đây, việc tạo các thủ tục được lưu trữ trong nhiều cơ sở dữ liệu là một công việc khó khăn. Một trong những cách để triển khai điều này là sử dụng quy trình sp_MSforeachdb . sp_MSforeachdb là một thủ tục hệ thống trong SQL Server thực thi cùng một tác vụ cho mọi cơ sở dữ liệu trong máy chủ.

Dưới đây là một ví dụ đơn giản về việc sử dụng quy trình sp_MSforeachdb để tạo quy trình được lưu trữ trong mọi cơ sở dữ liệu.

  DECLARE @query VARCHAR (MAX)
SELECT @query = 'IF' '?' 'NOT IN (' 'master' ',' 'model' ',' 'msdb' ',' 'tempdb' ')
BẮT ĐẦU SỬ DỤNG?
EXEC ('' TẠO THỦ TỤC usp_GetRecords AS
CHỌN * TỪ DeptTable

                     '')
CHẤM DỨT'

EXEC sp_MSforeachdb @query  

Trong ví dụ, đầu tiên, chúng tôi đã tạo một biến VARCHAR (MAX) với tên “ @query “. Sau đó, chúng tôi đang sử dụng biến này để tạo mã SQL để kiểm tra sự tồn tại của một thủ tục và sau đó, tạo một thủ tục. Cuối cùng, chúng tôi đang thực thi quy trình sp_MSforeachdb với biến “ @query ” làm tham số.

Sau khi triển khai ví dụ trên, thủ tục sp_MSforeachdb sẽ tạo thủ tục trong tất cả cơ sở dữ liệu của SQL Server.

Đây là cách tạo quy trình được lưu trữ trong nhiều cơ sở dữ liệu trong máy chủ sql 2019 .

SQL Server tạo quy trình được lưu trữ trong cơ sở dữ liệu chính

Một cơ sở dữ liệu chính trong SQL Server có thể có 2 loại thủ tục được lưu trữ. Một là quy trình được lưu trữ của hệ thống và một là quy trình được lưu trữ do người dùng xác định .

Giờ đây, Microsoft đã cung cấp một tập hợp lớn các thủ tục hệ thống được sử dụng để truy vấn bảng hệ thống của họ và điều này giúp truy xuất một số thông tin.

SQL Server cũng cho phép người dùng tạo một thủ tục được lưu trữ trong cơ sở dữ liệu chính và sử dụng nó như một thủ tục được lưu trữ trong hệ thống. Đối với điều này, chúng ta cần tạo một thủ tục với tiền tố sp_ trong cơ sở dữ liệu chính. Nếu một thủ tục được lưu trữ bắt đầu bằng tiền tố sp_ , trước tiên công cụ sẽ tìm kiếm nó trong cơ sở dữ liệu chính, sau đó kiểm tra cơ sở dữ liệu hiện tại và quyền sở hữu.

Để biết cách tạo quy trình được lưu trữ trong cơ sở dữ liệu chính , hãy xem xét ví dụ sau.

  SỬ DỤNG MASTER
ĐI

 - bỏ quy trình đã lưu trữ nếu nó tồn tại 
NẾU OBJECT_ID ('sp_GetTableInfo') KHÔNG ĐẦY ĐỦ
THỦ TỤC DROP DBO.sp_GetTableInfo
ĐI

 - tạo thủ tục được lưu trữ 
TẠO QUY TRÌNH DBO.sp_GetTableInfo
(@table VARCHAR (MAX))
BẰNG 
   ĐẶT SỐ TÀI KHOẢN BẬT


   LỰA CHỌN *
   FROM INFORMATION_SCHEMA.TABLES
   WHERE TABLE_NAME = @table
ĐI  

Trong ví dụ trên, chúng tôi đã tạo một thủ tục được lưu trữ “ sp_GetTableInfo ” trong cơ sở dữ liệu chính. Thủ tục này sẽ cố gắng tìm bảng có tên được truyền dưới dạng tham số. Và nếu bảng tồn tại, quy trình sẽ trả về thông tin cơ bản liên quan đến bảng đó.

Bây giờ, trước khi thực hiện thủ tục, chúng ta phải đánh dấu thủ tục này là một thủ tục được hệ thống lưu trữ. Đối với điều này, chúng tôi phải triển khai truy vấn sau.

  SỬ DỤNG MASTER
ĐI

EXEC sp_ms_marksystemobject 'sp_GetTableInfo'
ĐI  

Trong truy vấn, chúng tôi đã sử dụng sp_ms_marksystemobject , sẽ yêu cầu công cụ SQL Server tham chiếu thủ tục “ sp_GetTableInfo ” như một thủ tục hệ thống. Nếu chúng tôi không thực hiện điều này, thì quy trình sẽ hoạt động giống như một quy trình thông thường do người dùng xác định.

Bây giờ, hãy thử thực hiện quy trình từ một số cơ sở dữ liệu khác. Đây là quá trình thực hiện việc triển khai này.

SQL Server tạo quy trình được lưu trữ trong cơ sở dữ liệu chính Kết quả cuối cùng

Đây là cách tạo quy trình được lưu trữ trong cơ sở dữ liệu chính trong máy chủ sql 2019.

Cũng nên đọc: Quy trình được lưu trữ trên Máy chủ SQL nếu tồn tại bản cập nhật khác chèn

SQL Server tạo quy trình được lưu trữ nếu không tồn tại, nếu không sẽ thả

Trong khi tạo một thủ tục được lưu trữ , tất cả chúng ta có thể gặp phải tình huống khi chúng ta viết truy vấn để tạo một bảng, nhưng bảng có cùng tên đã tồn tại trong cơ sở dữ liệu. Những tình huống như vậy có thể rất khó chịu nếu chúng ta đang sử dụng giao diện dòng lệnh vì chúng ta phải viết lại truy vấn.

Để khắc phục những vấn đề như vậy, trước tiên, chúng tôi có thể kiểm tra sự tồn tại của quy trình và xóa nó nếu nó đã tồn tại, sau đó tạo một quy trình mới.

Vì vậy, đây là một ví dụ đầu tiên kiểm tra sự tồn tại của thủ tục và nếu thủ tục đã tồn tại thì nó sẽ bị loại bỏ nếu không nó sẽ tạo một thủ tục mới.

  NẾU OBJECT_ID ('GetAllRecods', 'P') KHÔNG ĐẦY ĐỦ  - kiểm tra sự tồn tại 
DROP PROC GetAllRecods  - xóa nó 
ĐI

TẠO PROC GetAllRecods  --Tạo quy trình mới 
BẰNG 
BẮT ĐẦU
  CHỌN * TỪ DeptTable
HẾT  

Trong ví dụ trên, chúng tôi đã tạo một tập lệnh để kiểm tra sự tồn tại của thủ tục GetAllRecords trước tiên. Và nếu thủ tục đã tồn tại, tập lệnh sẽ xóa nó. Nhưng nếu thủ tục không tồn tại, thì nó sẽ tạo ra một thủ tục có cùng tên.

Đây là cách tạo một quy trình được lưu trữ nếu không tồn tại, nếu không, hãy thả vào máy chủ sql .

Vì vậy, trong hướng dẫn này, chúng tôi đã học cách tạo một thủ tục được lưu trữ trong SQL Server và chúng tôi cũng đã đề cập đến các chủ đề sau.

  • SQL Server tạo thủ tục đã lưu trữ
  • SQL Server tạo quyền thủ tục đã lưu trữ
  • Tạo thủ tục lưu trữ Studio quản lý SQL Server
  • Tạo thủ tục lưu trữ SQL Server cú pháp
  • SQL Server tạo thủ tục được lưu trữ nếu không tồn tại, nếu không có thì thả
  • SQL Server tạo thủ tục được lưu trữ với các tham số
  • SQL Server tạo thủ tục được lưu trữ với các tham số mặc định
  • Tạo thủ tục lưu trữ SQL Server với các tham số đầu vào
  • Tạo thủ tục lưu trữ SQL Server với các tham số đầu vào và đầu ra
  • SQL Server tạo thủ tục được lưu trữ bằng biên dịch lại
  • Máy chủ SQL được tạo được lưu trữ thủ tục không cần xác thực
  • SQL Server tạo thủ tục được lưu trữ với tham số bảng
  • SQL Server tạo quy trình được lưu trữ bắt kịp cơ sở dữ liệu chính
  • SQL Server tạo quy trình được lưu trữ trong cơ sở dữ liệu khác
  • SQL Server tạo quy trình được lưu trữ trong nhiều cơ sở dữ liệu
  • SQL Server tạo quy trình được lưu trữ với các biến
  • SQL Server tạo giá trị trả về thủ tục được lưu trữ
  • Tạo thủ tục được lưu trữ SQL Server không có tham số
  • Tạo thủ tục được lưu trữ với try-catch trong SQL Server

Sau hơn 15 năm làm việc trong lĩnh vực Phần mềm, đặc biệt là trong lĩnh vực công nghệ của Microsoft, tôi đã quyết định chia sẻ kiến ​​thức chuyên môn của mình về SQL Server. Kiểm tra tất cả các hướng dẫn về SQL Server và cơ sở dữ liệu liên quan mà tôi đã chia sẻ ở đây. Hầu hết độc giả đến từ các quốc gia như Hoa Kỳ, Vương quốc Anh, New Zealand, Úc, Canada, v.v. Tôi cũng là một MVP của Microsoft . Xem thêm tại đây .


Xem thêm những thông tin liên quan đến chủ đề tạo một thủ tục được lưu trữ trong máy chủ sql

SQL Server Tutorial 1 – Setup and Creating Your First Database

alt

  • Tác giả: Kindson The Genius
  • Ngày đăng: 2019-07-19
  • Đánh giá: 4 ⭐ ( 4160 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sorry I said the video would not be monetized. That was a mistake, the video was later monetized. Really sorry for that!

    SQL Server Tutorial 1 – Setup and Creating Your First Database
    Getting Free SQL Server
    SQL Server/Management Studio Setup
    Creating a Database
    Viewing Database Objects
    Creating a Table
    Creating a View
    Creating a Stored Procedure

    Practical SQL Solved Exercises here – https://youtu.be/pSOKfMGyGTA

    Tutorial 1 – Setup and Getting Around SMSS https://youtu.be/TnW3CobKcp0
    Tutorial 2 – Writing SQL Queries https://youtu.be/IiaUdV4xq-o
    Tutorial 3 – Working With Views https://youtu.be/W8ReU35NRfE
    Tutorial 4 – Working with Stored Procedures https://youtu.be/Ox3uhfZOSsI
    Tutorial 5 – Relationships in SQL Server https://youtu.be/YVj7Fvt5ZcA
    Tutorial 6 – Joins in SQL Database https://youtu.be/FDThv-wJx7k

    Subscribe Kindson The Genius Youtube: https://bit.ly/2PpJd8Q
    Join my group ICS on Facebook: https://bit.ly/2UULiQj
    Follow me on Instagram – https://www.instagram.com/kindsonm/
    Connect with me on LinkedIn: https://www.linkedin.com/in/kindson/
    Follow me on Twitter: https://twitter.com/KindsonM
    Learn about me: http://www.kindsonthegenius.com

    SQL Server Tutorials

Công thức, REST và Thủ tục SQL được lưu trữ

  • Tác giả: helpex.vn
  • Đánh giá: 5 ⭐ ( 7309 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Một trong những trụ cột chính của Espresso Logic là khả năng mở rộng sử dụng JavaScript để gọi các thủ tục được lưu trữ. Nhiều công ty có các ứng dụng COTS sử dụng các thủ tục được lưu trữ…

CREATE PROC – Lệnh tạo Stored Procedure

  • Tác giả: www.sql.edu.vn
  • Đánh giá: 3 ⭐ ( 1737 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lệnh CREATE PROC (hoặc CREATE PROCEDURE) trong Microsoft SQL Server dùng để tạo Stored Procedure (thủ tục nội tại) trong CSDL.

Thủ tục được lưu trữ và kích hoạt trong SQL Server

  • Tác giả: itzone.com.vn
  • Đánh giá: 4 ⭐ ( 1767 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: The ITZone platform Vietnam is the community for anyone interested in news, training seminars, presentations etc in the IT industry

LàM THẾ NàO ĐỂ: Tạo thủ tục lưu trữ cho máy chủ SQL của bạn – 2022

  • Tác giả: vie.go-travels.com
  • Đánh giá: 3 ⭐ ( 5935 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Microsoft SQL Server cung cấp cơ chế thủ tục được lưu trữ để đơn giản hóa quá trình phát triển cơ sở dữ liệu. Đây là cách làm!

Thủ Tục Lưu Trữ (Stored procedure-P1)

  • Tác giả: expressmagazine.net
  • Đánh giá: 5 ⭐ ( 3453 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Các hàm cập nhật, xóa, và một số ví dụ về cách sử dụng các hàm Store Procedure.

Cách truyền một mảng vào thủ tục lưu trữ SQL Server

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 6183 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] SQL Server 2008 (hoặc mới hơn) Đầu tiên, trong cơ sở dữ liệu của bạn, tạo…

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Các cách khác nhau để đọc tệp văn bản trong Java - đọc tệp txt trong java

By ads_php