Trong hướng dẫn này, chúng ta sẽ tìm hiểu Cách thực thi thủ tục được lưu trữ trong SQL Server. Và chúng ta sẽ thảo luận về một số ví dụ về việc thực thi SP.

Bạn đang xem : thực thi thủ tục được lưu trữ sql

Trong hướng dẫn SQL Server này, chúng ta sẽ tìm hiểu Cách thực thi quy trình được lưu trữ trong SQL Server . Chúng tôi cũng sẽ thảo luận về các ví dụ khác nhau liên quan đến việc thực thi các thủ tục được lưu trữ trong SQL Server. Đây là danh sách đầy đủ các chủ đề mà chúng ta sẽ thảo luận.

  • Cách thực thi thủ tục đã lưu trữ trong SQL Serer
  • Cách thực thi các thủ tục đã lưu trữ tự động trong SQL Server
  • Thực thi thủ tục đã lưu trữ với các tham số trong SQL Server Management Studio
  • Cách thực thi thủ tục được lưu trữ mà không có tham số trong SQL Server
  • Cách thực thi thủ tục được lưu trữ có tham số trong SQL Server
  • Thực thi thủ tục được lưu trữ với nhiều tham số
  • Cách thực thi thủ tục được lưu trữ trong máy chủ sql với các tham số đầu vào
  • Cách thực thi thủ tục được lưu trữ trong máy chủ sql với các tham số đầu ra
  • Thực thi thủ tục đã lưu trữ với các tham số đầu vào và đầu ra trong SQL Server
  • Cách thực thi thủ tục đã lưu trong câu lệnh select SQL Server
  • Thực thi thủ tục đã lưu trong thủ tục đã lưu với các tham số
  • < / p>

  • Cách chuyển các tham số động cho thủ tục được lưu trữ trong SQL Server
  • Thực thi thủ tục đã lưu trữ với câu lệnh select làm tham số đầu vào
  • Thực thi thủ tục được lưu trữ với các tham số ngày trong SQL Server
  • Thực thi thủ tục được lưu trữ với các tham số có giá trị bảng trong SQL Server
  • Cách thực thi thủ tục được lưu trữ trong SQL Server với giá trị trả về
  • < / ul>

    Lưu ý: – Trước khi bắt đầu chủ đề này, bạn nên biết các thủ tục được lưu trữ là gì cách chúng tôi có thể tạo một thủ tục được lưu trữ trong SQL Server < / strong>. Để biết thêm chi tiết, bạn cũng có thể tham khảo các bài viết sau.

    Cách thực thi thủ tục được lưu trữ trong SQL Server

    Trong SQL Server, có sẵn 2 cách tiếp cận khác nhau để thực thi một thủ tục được lưu trữ. Cách tiếp cận đầu tiên chỉ đơn giản là gọi thủ tục được lưu trữ bất cứ khi nào chúng ta được yêu cầu thực hiện một thủ tục. Và cách tiếp cận thứ hai là tự động thực hiện thủ tục được lưu trữ bất cứ khi nào chúng ta khởi động phiên bản SQL Server.

    Phần này sẽ thảo luận về cách tiếp cận thủ công để gọi thủ tục được lưu trữ và cố gắng minh họa một số ví dụ.

    Chúng tôi có thể thực thi một thủ tục được lưu trữ theo 2 cách, đầu tiên là thực hiện truy vấn Transact-SQL để thực thi. Và cách thứ hai là sử dụng SQL Server Management Studio .

    Sử dụng Transact-SQL

    Hãy bắt đầu với cách đầu tiên là gọi thủ tục được lưu trữ theo cách thủ công để thực thi. Chúng tôi phải sử dụng từ khóa EXECUTE hoặc EXEC để chạy quy trình được lưu trữ bắt buộc trong cách tiếp cận này.

    Ngoài ra, bạn nên chỉ định lược đồ với tên thủ tục. Bởi vì Công cụ cơ sở dữ liệu không phải tìm kiếm nhiều lược đồ, kỹ thuật này cung cấp một lợi ích hiệu suất nhỏ. Và nếu một cơ sở dữ liệu có các thủ tục trùng tên trong nhiều lược đồ, nó cũng ngăn không cho thủ tục không mong muốn được thực thi.

    Đây là cú pháp chung để thực hiện quy trình được lưu trữ bằng từ khóa EXEC .

      SỬ DỤNG  database_name 
    ĐI
    EXEC dbo.procedure_name
    
    ---------------HOẶC--------------------------
    
    EXEC database_name.dbo.procedure_name
    ĐI  

    Hãy hiểu phần trình diễn này với sự trợ giúp của một ví dụ. Và trong ví dụ này, chúng tôi sẽ thực thi một thủ tục được lưu trữ đơn giản với tên “ GetAllRecords ” và nó có mã sau.

     SỬ DỤNG [sqlserverguides]
    Đ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  

    Bây giờ, hãy thử thực hiện quy trình này với sự trợ giúp của cú pháp đã cho.

      SỬ DỤNG sqlserverguides
    ĐI
    
    EXEC dbo.GetAllRecords  

    Trong mã, trước tiên, chúng tôi đã chỉ định tên cơ sở dữ liệu là sqlserverguides . Sau đó, chúng tôi đang sử dụng từ khóa EXEC để thực thi quy trình có lược đồ dbo . Và sau khi thực hiện, chúng ta sẽ nhận được kết quả như sau.

    Cách thực thi thủ tục được lưu trữ trong SQL Server Đầu ra

    Sử dụng SQL Server Management Studio

    Bây giờ, chúng ta sẽ hiểu cách sử dụng SQL Server Management Studio để thực thi một thủ tục được lưu trữ. Đối với điều này, chúng tôi phải làm theo các bước sau được cung cấp bên dưới.

    • Trước tiên, hãy khởi động SQL Server Management Studio và kết nối với Công cụ cơ sở dữ liệu .
    • Bây giờ, trong Trình khám phá đối tượng , mở rộng cơ sở dữ liệu có chứa quy trình được lưu trữ.
    • Tiếp theo, mở rộng thư mục Khả năng lập trình và sau đó trong mục Khả năng lập trình , hãy mở rộng Thủ tục đã lưu trữ .
    • Bây giờ, nhấp chuột phải vào quy trình được lưu trữ bắt buộc và nhấp vào Thực hiện quy trình đã lưu trữ . Nó sẽ mở ra một hộp thoại Quy trình thực thi .

    Cách thực thi thủ tục được lưu trữ trong SQL Server bằng ssms Thực thi thủ tục được lưu trữ bằng SSMS

    • Bây giờ, trong Thủ tục thực thi hộp thoại, chỉ định các giá trị tham số được yêu cầu và nhấp vào OK .

    Đọc: Vòng lặp trong quy trình được lưu trữ trên Máy chủ SQL

    Cách thực thi các thủ tục được lưu trữ tự động trong SQL Server

    Bất cứ khi nào chúng tôi đánh dấu một thủ tục sẽ được thực thi tự động, thủ tục sẽ được thực thi bất cứ khi nào SQL Server khởi động. Vì vậy, trước khi tạo một thủ tục để thực thi tự động, hãy hiểu nhu cầu của việc thực thi một thủ tục một cách tự động.

    • Thực thi thủ tục tự động có thể hữu ích trong việc triển khai tác vụ bảo trì cơ sở dữ liệu.
    • Một ứng dụng khác để thực thi tự động là tạo các thủ tục tiến hành các hoạt động bảo trì hoặc hệ thống trong tempdb, chẳng hạn như xây dựng một hệ thống tạm thời chung bảng.

    Tiếp theo, hãy hiểu những hạn chế của việc tự động thực hiện một quy trình được lưu trữ.

    • Chỉ quản trị viên hệ thống mới có thể tạo các thủ tục được lưu trữ để thực thi tự động trong cơ sở dữ liệu chính.
    • Một thủ tục được lưu trữ để thực thi tự động không được có bất kỳ tham số đầu vào hoặc đầu ra nào.
    • Các thủ tục được lưu trữ để thực thi tự động sẽ không trả về bất kỳ tập kết quả nào vì không có nơi nào để tập kết quả hiển thị.

    Bây giờ, hãy hiểu cách chúng tôi có thể đánh dấu một thủ tục được lưu trữ để thực thi tự động. Vì vậy, để triển khai này, chúng tôi sử dụng quy trình hệ thống sp_procoption . Đây là cú pháp chung mà chúng ta có thể sử dụng để đánh dấu một thủ tục đã lưu trữ để thực thi tự động.

      SỬ DỤNG  database_name ;
    ĐI
    EXEC sp_procoption @ProcName = '& lt; tên thủ tục & gt;'
        , @OptionName = 'startup'
        , @OptionValue = 'on';  

    Hãy hiểu cách triển khai này với sự trợ giúp của một ví dụ. Và ví dụ, chúng tôi đã tạo một thủ tục được lưu trữ đơn giản để tạo một bảng tạm thời toàn cục và chèn 3 bản ghi vào đó. Nó có mã sau.

      SỬ DỤNG chính
    ĐI
    
    TẠO PROC sp_GlobalTmpTable
    BẰNG 
    BẮT ĐẦU
    Tạo bảng ## MyDetails (Id int, Name nvarchar (30))
      
    Chèn vào ## Giá trị MyDetails (1, 'Jack')
    Chèn vào ## Giá trị MyDetails (2, 'Kane')
    Chèn vào ## Giá trị MyDetails (3, 'Smith')
     
    Kết thúc  

    Bây giờ, hãy sử dụng cú pháp đã cho để đánh dấu quy trình thực thi tự động.

      SỬ DỤNG master;
    ĐI
    EXEC sp_procoption @ProcName = 'sp_GlobalTmpTable'
        , @OptionName = 'startup'
        , @OptionValue = 'on';
     

    Bây giờ, bất cứ khi nào chúng tôi khởi động lại phiên bản SQL Server, chúng tôi có thể thấy một bảng tạm thời chung sẽ được tạo tự động.

    Đọc: Ngày sửa đổi thủ tục được lưu trữ trên SQL Server

    Cách thực thi thủ tục được lưu trữ với các tham số trong SQL

    Server

    Sức mạnh thực sự của các thủ tục được lưu trữ nằm ở khả năng của chúng để truyền các tham số và để thủ tục được lưu trữ xử lý nhiều yêu cầu khác nhau. Trong SQL Server, các tham số được sử dụng để trao đổi dữ liệu giữa thủ tục được lưu trữ và ứng dụng gọi thủ tục được lưu trữ.

    Trong SQL Server, có 2 loại tham số được liên kết với các thủ tục được lưu trữ.

    1. Tham số đầu vào
    2. Tham số đầu ra

    Trong phần này, chúng tôi sẽ thảo luận về cả hai loại tham số và chúng tôi cũng sẽ minh họa một số ví dụ.

    Cách thực thi thủ tục được lưu trữ trong máy chủ sql với các tham số đầu vào

    Trước tiên, hãy hiểu tham số đầu vào là gì và cách chúng ta có thể thực thi quy trình được lưu trữ với các tham số đầu vào .

    Tham số đầu vào trong một thủ tục được lưu trữ cho phép người dùng hoặc người gọi chuyển một giá trị dữ liệu cho thủ tục được lưu trữ. Và sau đó, chúng tôi có thể sử dụng giá trị dữ liệu đó trong quy trình được lưu trữ cho một số thao tác.

    Bây giờ, trước khi hiểu cách thực thi một thủ tục được lưu trữ với các tham số đầu vào, người ta nên biết cách tạo các tham số đầu vào. Để minh họa, chúng tôi đã tạo một thủ tục được lưu trữ chấp nhận 3 tham số đầu vào và chèn các giá trị tham số đó vào bảng bán hàng. Tập lệnh cho quy trình được lưu trữ được đưa ra bên dưới.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [InsertRecords]
    (@name VARCHAR (50), @joining_date Date, @sales INT)
    BẰNG 
    BẮT ĐẦU
      CHÈN VÀO dbo.SalesTable
      GIÁ TRỊ (@name, @joining_date, @sales)
    CHẤM DỨT
    ĐI  

    Bây giờ để thực hiện thủ tục với các tham số đầu vào, chúng ta cần chỉ định các giá trị cho các tham số đó trong khi chạy câu lệnh execute. Và có 2 cách để truyền các giá trị tham số, cả hai cách đều được minh họa trong cú pháp bên dưới.

      SỬ DỤNG  databse_name 
    ĐI
    
    
    EXEC  procedure_name  @ Param_1 = value_1,
                        @ Param_2 = value_2
    
    ---------------------------HOẶC---------------------- ------
    SỬ DỤNG  databse_name 
    ĐI
    
    EXEC  tên_thủ tục  value_1, value_2  

    Bây giờ có 2 cách tiếp cận mà chúng ta có thể sử dụng để chỉ định tham số đầu vào. Cách tiếp cận đầu tiên là chỉ định tên tham số cùng với giá trị của nó và cách tiếp cận thứ hai là chỉ định trực tiếp các giá trị tham số.

    Ví dụ hoạt động của cả hai lần thực thi được minh họa trong hình ảnh bên dưới.

    Cách thực thi thủ tục được lưu trữ trong máy chủ sql với tham số đầu vào Ví dụ

    < / p>

    Cách thực thi thủ tục được lưu trữ trong máy chủ sql với các tham số đầu ra

    Tham số đầu ra trong một thủ tục được lưu trữ cho phép chuyển các giá trị dữ liệu từ thủ tục đã lưu trữ trở lại người gọi hoặc người dùng. Và sau đó, chúng ta có thể sử dụng các giá trị dữ liệu đó bên ngoài quy trình được lưu trữ cho một số thao tác.

    Bây giờ, trước khi hiểu cách thực thi một thủ tục được lưu trữ với các tham số đầu ra, người ta nên biết cách tạo các tham số đầu ra. Để trình diễn, chúng tôi đã tạo một thủ tục được lưu trữ với 1 tham số đầu ra. Và chúng ta sẽ sử dụng tham số đầu ra này để lấy tổng số sản phẩm có trong bảng sản phẩm. Tập lệnh cho thủ tục được lưu trữ này được đưa ra dưới đây.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [Usp_GetProductCount]
    (@count INT OUT)
    BẰNG 
    BẮT ĐẦU
      CHỌN @count = COUNT (product_name) TỪ dbo.ProductTable
    CHẤM DỨT
    ĐI  

    Bây giờ để thực thi một thủ tục được lưu trữ với tham số đầu ra, trước tiên, chúng ta phải khai báo một biến có thể lưu giá trị của tham số đầu ra. Sau đó, chúng ta có thể sử dụng biến đã khai báo để nhận giá trị của tham số đầu ra.

    Đây là một ví dụ về cách chúng tôi có thể thực thi quy trình với tham số đầu ra.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    DECLARE @P_count int
    
    THỰC HIỆN [dbo]. [Usp_GetProductCount] @ count = @ P_count OUTPUT
    
    CHỌN @P_count AS [Số lượng sản phẩm]
     

    Trong ví dụ này, trước tiên, chúng tôi đã khai báo một biến số nguyên với tên @P_count . Sau đó, chúng tôi đang sử dụng câu lệnh thực thi và trong câu lệnh, chúng tôi đã gán biến dưới dạng giá trị cho tham số đầu ra. Cuối cùng, chúng tôi đang sử dụng câu lệnh SELECT để nhận giá trị của biến.

    Quá trình thực thi hoàn chỉnh được hiển thị trong hình ảnh bên dưới.

    Cách thực thi thủ tục được lưu trữ trong máy chủ sql với tham số đầu ra Ví dụ

    Lưu trữ thực thi thủ tục với các tham số đầu vào và đầu ra trong SQL Server

    Cho đến bây giờ, chúng ta đã thảo luận về cách chúng ta có thể thực thi các thủ tục được lưu trữ với các tham số đầu vào cũng như đầu ra. Và chúng tôi cũng đã thảo luận riêng về các ví dụ của họ. Bây giờ, hãy hiểu cách chúng ta có thể thực thi một quy trình được lưu trữ với cả tham số đầu vào và đầu ra cùng nhau.

    Để hiểu cách triển khai này, hãy thực hiện một ví dụ đơn giản về thủ tục được lưu trữ có cả tham số đầu vào và đầu ra.

    Ví dụ: chúng tôi đã tạo một thủ tục được lưu trữ chấp nhận một giá trị số nguyên làm tham số đầu vào. Và sau đó, chúng tôi sẽ tính toán khối của giá trị số nguyên đó và trả lại cho người dùng hoặc người gọi bằng cách sử dụng tham số đầu ra. Mã của quy trình được lưu trữ như sau.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [Usp_GetCube]
    (@a INT, @b INT OUTPUT)
    BẰNG 
    BẮT ĐẦU
      ĐẶT @b = (@a * @a * @a)
    CHẤM DỨT
    ĐI
     

    Bây giờ để thực hiện thủ tục này, trước tiên, chúng ta phải chuyển giá trị cho tham số đầu vào. Và sau đó, chúng ta phải truyền một biến có thể lưu trữ giá trị của một tham số đầu ra. Cuối cùng, chúng tôi sẽ sử dụng câu lệnh SELECT để hiển thị giá trị của tham số đầu ra.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    DECLARE @cube INT
    
    EXEC [dbo]. [Usp_GetCube] 9, @cube OUTPUT
    
    CHỌN @cube AS [Giá trị khối]  

    Cuối cùng, chúng ta sẽ nhận được kết quả sau.

    Thực thi thủ tục được lưu trữ với các tham số đầu vào và đầu ra trong SQL Server Kết quả

    Đọc: Quy trình được lưu trữ cho chức năng tìm kiếm trong SQL Server

    Cách thực thi thủ tục được lưu trữ với nhiều tham số

    Trong SQL Server, một thủ tục được lưu trữ cũng có thể có nhiều tham số đầu vào cũng như đầu ra. Giờ đây, các tham số này có thể được sử dụng để triển khai một số tác vụ trong thủ tục hoặc chúng có thể được sử dụng để trả về một số giá trị từ thủ tục cho trình gọi.

    Một thủ tục trong SQL Server có thể có tối đa 2100 tham số, mỗi tham số được gán với tên, kiểu dữ liệu, hướng hoặc giá trị mặc định. Bây giờ để thực thi một thủ tục được lưu trữ với nhiều tham số, chúng ta có thể chỉ định tên tham số với giá trị của nó hoặc chúng ta có thể chỉ định trực tiếp các giá trị tham số theo thứ tự.

    Hãy hiểu cách triển khai này bằng cách thực hiện một thủ tục được lưu trữ có nhiều tham số. Và mã của một ví dụ được đưa ra bên dưới.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [Usp_FilterRecods]
    (@country VARCHAR (MAX), @start_date DATE, @end_date DATE)
    BẰNG 
    BẮT ĐẦU
      CHỌN [first_name], [last_name], [country], [Date] AS [Ngày tham gia]
      TỪ [Bảng mẫu]
      WHERE ([Quốc gia] = @country VÀ ([Ngày] GIỮA @start_date VÀ @end_date))
    CHẤM DỨT
    ĐI  

    Trong ví dụ đã cho. chúng tôi đã tạo một thủ tục được lưu trữ với 3 tham số đầu vào. Và chúng tôi sẽ sử dụng các tham số đầu vào này để lọc ra tập kết quả từ bảng mẫu. Trong ví dụ này, chúng tôi đang sử dụng câu lệnh SELECT để tìm nạp 4 cột từ bảng mẫu. Sau đó, chúng tôi đang sử dụng mệnh đề WHERE để lọc kết quả dựa trên các tham số đầu vào.

    Tiếp theo, để thực hiện quy trình đã lưu trữ này, chúng tôi sẽ chuyển trực tiếp giá trị của các tham số đầu vào theo thứ tự.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    EXEC [dbo]. [Usp_FilterRecods] 'Hoa Kỳ', '2020-03-13', '2021-09-13'  

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

    Cách thực thi thủ tục được lưu trữ với nhiều tham số Kết quả

    Đọc: Thử bắt trong Máy chủ SQL được lưu trữ thủ tục

    Thực thi quy trình được lưu trữ với các tham số trong SQL

    phòng thu quản lý máy chủ

    Bây giờ, chúng ta sẽ hiểu cách sử dụng SQL Server Management Studio để thực thi một thủ tục được lưu trữ có tham số. Để triển khai này, chúng tôi phải thực hiện theo các bước sau được cung cấp bên dưới.

    • Trước tiên, hãy khởi động SQL Server Management Studio và kết nối với Công cụ cơ sở dữ liệu bằng thông tin đăng nhập của bạn.
    • Bây giờ, dưới > Object Explorer , mở rộng cơ sở dữ liệu có chứa quy trình được lưu trữ.
    • Tiếp theo, mở rộng thư mục Khả năng lập trình và sau đó trong mục Khả năng lập trình , hãy mở rộng Thủ tục đã lưu trữ .
    • Bây giờ, hãy nhấp chuột phải vào quy trình được lưu trữ bắt buộc và nhấp vào Thực thi quy trình đã lưu trữ . Nó sẽ mở hộp thoại Thủ tục thực thi .
    • Tiếp theo, trong hộp thoại Thủ tục thực thi , cung cấp các giá trị tham số bắt buộc và nhấp vào OK để thực hiện thủ tục.

    Ví dụ

    Trong ví dụ này, chúng tôi đang thực hiện một thủ tục được lưu trữ lọc ra kết quả dựa trên 3 tham số đầu vào. Và trong ví dụ này, chúng tôi đã cung cấp các giá trị cho từng tham số đầu vào.

    Bây giờ, nếu bạn đang thực thi một thủ tục được lưu trữ có tham số đầu ra thì bạn không cần cung cấp giá trị cho nó. SQL Server Management Studio sẽ tự động trả về giá trị của tham số đầu ra vào một biến.

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

    Cách thực thi thủ tục được lưu trữ mà không có tham số trong SQL Server

    Trong SQL Server, chúng tôi cũng có thể tạo một thủ tục được lưu trữ mà không có 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à một trong những cách triển khai cơ bản của thủ tục được lưu trữ trong SQL Server. Các loại thủ tục được lưu trữ này thường được sử dụng khi chúng ta chỉ muốn trả về các tập kết quả.

    Hãy hiểu cách tiếp cận này với sự trợ giúp của một ví dụ. Đối với ví dụ này, chúng tôi sẽ tạo một thủ tục lưu trữ đơn giản trả về một tập kết quả. Để trả về tập kết quả, chúng ta phải sử dụng câu lệnh SELECT trong phần nội dung của thủ tục. Ví dụ về quy trình được lưu trữ được minh họa bên dưới.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO THỦ TỤC [dbo]. [GetAllProducts]
    BẰNG 
    BẮT ĐẦU
      CHỌN [product_id], [product_name], [số lượng], [product_price]
      TỪ dbo.ProductTable;
    CHẤM DỨT
    ĐI  

    Trong ví dụ trên, chúng tôi đã tạo một quy trình được lưu trữ trả về tập kết quả từ bảng sản phẩm. Bây giờ để thực hiện quy trình này, chúng tôi chỉ cần sử dụng từ khóa EXEC và chỉ định tên của quy trình.

    Truy vấn để thực thi và kết quả của nó được hiển thị trong hình ảnh bên dưới.

    Cách thực thi thủ tục được lưu trữ mà không có tham số trong SQL Server Ví dụ

    Đọc: Giá trị trả về của thủ tục được lưu trữ trên SQL Server

    Trong SQL Server, một thủ tục được lưu trữ có thể có các tham số của các kiểu dữ liệu khác nhau. Một thủ tục được lưu trữ trong SQL Server hỗ trợ các loại kiểu dữ liệu khác nhau cho các tham số. Các kiểu dữ liệu này bao gồm số nguyên, float, varchar, date, DateTime, v.v.

    Trong phần này, chúng ta sẽ hiểu cách chúng ta có thể thực thi một thủ tục được lưu trữ với các tham số kiểu dữ liệu ngày tháng.

    Và chúng ta sẽ thảo luận về việc triển khai này với sự trợ giúp của một ví dụ. Bây giờ, chẳng hạn, chúng tôi đã tạo một thủ tục được lưu trữ đơn giản để chuyển đổi giá trị DateTime thành giá trị ngày tháng. Dưới đây là mã hoàn chỉnh cho quy trình được lưu trữ.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    Tạo proc [dbo]. [Usp_Datetime2Date]
    (@datetime DATETIME, @date DATE OUT)
    BẰNG 
    BẮT ĐẦU
    ĐẶT @date = CAST (@datetime AS DATE)
    CHẤM DỨT
    ĐI
     
    • Trong ví dụ trên, chúng ta đã tạo một thủ tục được lưu trữ với 2 tham số.
    • Tham số đầu tiên là tham số đầu vào của kiểu dữ liệu Datetime và tham số thứ hai là tham số đầu ra của kiểu dữ liệu Ngày.
    • Và thủ tục được lưu trữ này sẽ chuyển đổi giá trị tham số đầu vào của kiểu dữ liệu DateTime thành kiểu dữ liệu ngày tháng.
    • Cuối cùng, nó trả về giá trị đã chuyển đổi bằng cách sử dụng tham số đầu ra.

    Tiếp theo, hãy thực hiện quy trình này bằng cách chỉ định giá trị cho các tham số đầu vào và đầu ra.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    DECLARE @date_value Ngày
    
    EXEC [dbo]. [Usp_Datetime2Date] '2018-08-25 15: 47: 43.903', @date_value OUTPUT
    
    CHỌN @date_value AS [Giá trị ngày]  

    Sau khi thực hiện thành công ví dụ đã cho, bạn sẽ nhận được kết quả sau.

    Thực thi quy trình được lưu trữ với tham số ngày trong máy chủ sql Kết quả

    Đọc: Máy chủ SQL được lưu trữ thủ tục so với chức năng

    Thực thi thủ tục được lưu trữ với các tham số giá trị bảng trong SQL Server

    Tham số có giá trị bảng trong SQL Server là một cách tiêu chuẩn để cung cấp một bảng dưới dạng tham số vào các thủ tục được lưu trữ. Nó cho phép chúng ta sử dụng bảng làm đầu vào cho một thủ tục, loại bỏ sự cần thiết của các bước phức tạp hơn để hoàn thành tác vụ.

    Vì vậy, trong phần này, chúng ta sẽ thảo luận về cách tạo và thực thi một thủ tục được lưu trữ với các tham số có giá trị bảng. Đối với việc triển khai này, chúng tôi phải tuân theo trình tự nhất định sau đây.

    • Đầu tiên, hãy tạo một loại bảng có thể được truyền dưới dạng tham số có giá trị bảng
    • Tiếp theo, tạo một thủ tục được lưu trữ sử dụng tham số có giá trị bảng
    • Trong cuối cùng, điền loại bảng và chuyển nó vào một thủ tục được lưu trữ.

    Trước tiên, hãy hiểu cách chúng ta có thể tạo một tham số có giá trị bảng trong SQL Server. Đối với điều này, chúng tôi sẽ phải sử dụng lệnh CREATE TYPE , đây là ví dụ về và loại bảng mà chúng tôi đã tạo.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO LOẠI [dbo]. [Loại khách hàng] LÀM BẢNG (
        [Id] [int] NULL,
        [Tên] [varchar] (50) NULL,
        [Quốc gia] [varchar] (50) NULL
    )
    ĐI  

    Tiếp theo, chúng ta phải tạo một thủ tục được lưu trữ chấp nhận loại bảng CustomerType làm tham số. Đây là ví dụ về quy trình được lưu trữ này.

    < / p>

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO THỦ TỤC [dbo]. [Usp_InsertCustomers]
        @tblCustomers Loại khách hàng ĐÃ SN SÀNG
    BẰNG 
    BẮT ĐẦU
    
        CHÈN VÀO Khách hàng (Id, Tên, Quốc gia)
        CHỌN Id, Tên, Quốc gia TỪ @tblCustomers
    HẾT  

    Trong ví dụ trên, chúng tôi đã tạo một thủ tục được lưu trữ với một tham số có giá trị bảng. Và chúng tôi sẽ sử dụng các giá trị của tham số có giá trị bảng này để chèn một số bản ghi vào bảng khách hàng.

    Tiếp theo, chúng ta phải tạo một biến bảng củaLoại CustomerType và sau đó chúng tôi sẽ thêm một số bản ghi trong biến bảng. Cuối cùng, chúng ta sẽ chuyển biến bảng cho thủ tục được lưu trữ dưới dạng một tham số có giá trị bảng. Tập lệnh cho việc triển khai này được đưa ra bên dưới.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    DECLARE @tblCustomers CustomerType
     
    CHÈN VÀO @tblCustomers ([Id], [Name], [Country])
    VALUES (1, 'John Cena', 'Hoa Kỳ'),
          (2, 'Peter Parker', 'Pháp'),
          (3, 'Chris Woakes', 'Anh')
      
     
    EXEC [dbo]. [Usp_InsertCustomers] @tblCustomers  

    Bây giờ, nếu chúng tôi thực hiện truy vấn trên, 3 bản ghi đã cho sẽ được chèn vào bảng của khách hàng.

    Thực thi thủ tục được lưu trữ với các tham số có giá trị bảng trong SQL Server Ví dụ

    Đọc: Chèn thủ tục được lưu trữ trên SQL Server vào

    Cách thực thi thủ tục được lưu trữ trong SQL

    Máy chủ có giá trị trả về

    Trong SQL Server, bất cứ khi nào chúng tôi thực thi một thủ tục được lưu trữ, theo mặc định, nó sẽ trả về một giá trị số nguyên cho người dùng hoặc người gọi. Các giá trị số nguyên này cho biết trạng thái thực thi của một thủ tục. Nói chung, số 0 đại diện cho việc thực thi thành công và số khác không đại diện cho một số loại lỗi.

    Ngoài điều này, chúng tôi cũng có thể sử dụng câu lệnh RETURN để trả về một giá trị số nguyên cho người dùng hoặc ứng dụng. Vì vậy, trong phần này, chúng ta sẽ hiểu cách chúng ta có thể thực thi một thủ tục được lưu trữ với giá trị trả về trong SQL Server.

    Hãy hiểu cách triển khai bằng cách thực hiện một thủ tục được lưu trữ đơn giản chấp nhận một giá trị số nguyên làm tham số đầu vào. Và trả về bình phương của số nguyên bằng cách sử dụng câu lệnh RETURN . Truy vấn cho quy trình được lưu trữ được đưa ra bên dưới.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [Usp_GetSquare]
    (@a INT)
    BẰNG 
    BẮT ĐẦU
      QUAY LẠI (@ a * @ a)
    CHẤM DỨT
    ĐI  

    Bây giờ để thực hiện thủ tục này và nhận giá trị trả về, trước tiên, chúng ta phải khai báo một biến kiểu dữ liệu số nguyên. Tiếp theo, chúng ta phải sử dụng biến trong câu lệnh thực thi và gán tên thủ tục với giá trị tham số của nó cho biến. Cuối cùng, hãy sử dụng câu lệnh SELECT với biến để nhận giá trị trả về.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    DECLARE @square_value INT
    
    EXEC @square_value = [dbo]. [Usp_GetSquare] 9
    
    CHỌN @square_value AS [Giá trị trả lại]  

    Đây là kết quả của quá trình thực thi ở trên.

    Cách thực thi thủ tục được lưu trữ trong SQL Server với giá trị trả về Kết quả

    Đọc: Quy ước đặt tên thủ tục được lưu trữ trên Máy chủ SQL

    Cách thực thi thủ tục đã lưu trong câu lệnh select SQL

    Server

    Trong SQL Server, chúng tôi không thể sử dụng trực tiếp câu lệnh SELECT để thực thi và tìm nạp kết quả của một thủ tục được lưu trữ. Tuy nhiên, vẫn có một cách mà chúng ta có thể thực thi một thủ tục được lưu trữ trong câu lệnh SELECT trong SQL Server. Để triển khai này, chúng tôi phải sử dụng OPENQUERY để thực hiện quy trình.

    OPENQUERY là một hàm trong SQL Server có thể được sử dụng trong câu lệnh SELECT . Và chức năng này dùng để lấy dữ liệu từ máy chủ này sang máy chủ khác. Vì vậy, chúng tôi sẽ sử dụng hàm này để thực thi một thủ tục và chúng tôi sẽ sử dụng hàm trong câu lệnh SELECT để tìm nạp kết quả từ một thủ tục được lưu trữ.

    Hãy hiểu cách triển khai này với sự trợ giúp của một ví dụ. Đối với phần trình diễn này, chúng tôi đang sử dụng một thủ tục được lưu trữ đơn giản là trả về các bản ghi từ bảng sản phẩm. Quy trình được lưu trữ như sau.

     SỬ DỤNG [sqlserverguides]
    ĐI
    
    
    TẠO THỦ TỤC [dbo]. [GetAllProducts]
    BẰNG 
    BẮT ĐẦU
      CHỌN [product_id], [product_name], [số lượng], [product_price]
      TỪ dbo.ProductTable;
    CHẤM DỨT
    ĐI  

    Bây giờ, chúng tôi sẽ sử dụng truy vấn sau để thực thi quy trình trong câu lệnh SELECT bằng cách sử dụng hàm OPENQUERY .

      SELECT * FROM OPENQUERY ([DESKTOP-0EMHCK4 \ SQLEXPRESS],
                            'EXEC sqlserverguides.dbo.GetAllProducts');  

    Trong hàm OPENQUERY , trước tiên, chúng tôi chỉ định tên máy chủ và sau đó, chúng tôi chỉ định câu lệnh thực thi thủ tục. Cuối cùng, chúng ta sẽ nhận được kết quả sau.

    Cách thực thi thủ tục được lưu trữ trong câu lệnh select SQL Server Output

    Đọc: Quy trình được lưu trữ trên SQL Server nếu khác

    Thực thi thủ tục được lưu trữ trong thủ tục được lưu trữ với các tham số

    Trong SQL Server, chúng ta cũng có thể sử dụng một thủ tục được lưu trữ trong phần thân của một thủ tục được lưu trữ khác. Và cả thủ tục được lưu trữ cũng có thể có các tham số để chuyển các giá trị cho nhau.

    Để hiểu rõ hơn, hãy triển khai một ví dụ và cố gắng hiểu toàn bộ quá trình thực thi. Vì vậy, trước tiên, chúng tôi đã tạo một thủ tục được lưu trữ với tên “ usp_GetProductById “. Bây giờ, quy trình này chấp nhận một id sản phẩm làm tham số đầu vào và sử dụng nó để tìm nạp tên và giá của sản phẩm đó từ bảng sản phẩm. Cuối cùng, nó trả về tên sản phẩm và giá bằng các tham số đầu ra.

    Tập lệnh cho quy trình được đưa ra bên dưới.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [Usp_GetProductById]
    (@id INT, @name VARCHAR (MAX) OUT, @price INT OUT)
    BẰNG 
    BẮT ĐẦU
      CHỌN @name = [product_name], @price = [product_price] FROM dbo.ProductTable
      WHERE [product_id] = @id
    CHẤM DỨT
    ĐI  

    Tiếp theo, chúng tôi đã tạo một quy trình được lưu trữ khác với tên “ usp_GetProductPrice “. Bây giờ, thủ tục này cũng chấp nhận id sản phẩm làm tham số đầu vào và nó sử dụng tham số này để thực thi thủ tục “ usp_GetProductById ”. Sau khi thực hiện, nó sẽ in tên và giá của sản phẩm được trả về bởi thủ tục “ usp_GetProductById ”.

    Tập lệnh cho quy trình được đưa ra bên dưới.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [Usp_GetProductPrice]
    (@id INT)
    BẰNG 
    BẮT ĐẦU
      DECLARE @p_name VARCHAR (MAX), @p_price INT
      THỰC HIỆN [dbo]. [Usp_GetProductById] @id, @p_name OUT, @p_price OUT
      IN '' + @ p_name + 'có giá là' + CAST (@p_price NHƯ VARCHAR (MAX))
    CHẤM DỨT
    ĐI
    
     

    Bây giờ, chúng tôi sẽ chỉ thực hiện quy trình “ usp_GetProductPrice ” bằng cách cung cấp giá trị cho tham số đầu vào.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    EXEC [dbo]. [Usp_GetProductPrice] 101  

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

    Thực thi thủ tục được lưu trữ trong thủ tục được lưu trữ với các tham số Đầu ra

    Đọc: Cách xem thủ tục được lưu trữ trong Máy chủ SQL

    Thực thi quy trình đã lưu trữ với câu lệnh select làm tham số đầu vào

    Trong SQL Server, chúng tôi thường sử dụng câu lệnh SELECT để tìm nạp dữ liệu từ các bảng hoặc hàm khác nhau. Dữ liệu trả về từ câu lệnh SELECT được gọi là tập kết quả. Vì vậy, trong khi làm việc với các thủ tục được lưu trữ, chúng ta có thể gặp phải tình huống phải chuyển nhiều giá trị vào thủ tục.

    Nhưng trong SQL Server, chúng tôi không thể vượt qua SELECT câu lệnh trực tiếp dưới dạng tham số đầu vào. Cách tiếp cận đúng là sử dụng một tham số có giá trị bảng để chuyển dữ liệu bảng vào thủ tục.

    Vì vậy, hãy hiểu cách tiếp cận với sự trợ giúp của một ví dụ. Và đối với điều này, một lần nữa chúng tôi đang sử dụng cùng một quy trình usp_InsertCustomers .

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    
    TẠO THỦ TỤC [dbo]. [Usp_InsertCustomers]
        @tblCustomers Loại khách hàng ĐÃ SN SÀNG
    BẰNG 
    BẮT ĐẦU
        CHÈN VÀO Khách hàng (Id, Tên, Quốc gia)
        CHỌN Id, Tên, Quốc gia TỪ @tblCustomers
    CHẤM DỨT
    ĐI  

    Bây giờ, để thực thi, trước tiên, chúng ta sẽ khai báo một biến kiểu bảng. Sau đó, chúng ta có thể sử dụng câu lệnh SELECT để chèn các giá trị vào biến kiểu bảng. Và cuối cùng, chúng ta sẽ truyền biến kiểu bảng làm tham số đầu vào.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    DECLARE @tblCust CustomerType
    
    CHÈN VÀO @tblCust
    CHỌN Id, Tên, Quốc gia TỪ [CustomerTable2]
    
    EXEC [dbo]. [Usp_InsertCustomers] @tblCust  

    Sau khi thực thi, 5 hàng từ CustomerTable2 sẽ được chèn vào bảng Khách hàng . Đây là kết quả của quá trình thực thi ở trên.

    Thực thi thủ tục được lưu trữ với câu lệnh select làm tham số đầu vào Ví dụ

    Đọc: SQL Server select từ thủ tục được lưu trữ

    Cách chuyển các tham số động cho thủ tục được lưu trữ trong máy chủ sql

    Trong SQL Server, chúng tôi thường tạo một thủ tục được lưu trữ với một số tham số đầu vào. Và các tham số đầu vào này được sử dụng để truyền động các giá trị vào thủ tục.

    Để trình diễn, hãy xem xét quy trình được lưu trữ sau đây.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    TẠO PROC [dbo]. [Usp_FilterRecods]
    (
      @country VARCHAR (MAX) = 'Hoa Kỳ',
      @start_date DATE = NULL,
      @end_date DATE = NULL
    )
    BẰNG 
    BẮT ĐẦU
      CHỌN [first_name], [last_name], [country], [Date] AS [Ngày tham gia]
      TỪ [Bảng mẫu]
      WHERE ([Quốc gia] = @country VÀ ([Ngày] GIỮA @start_date VÀ @end_date))
    CHẤM DỨT
    ĐI  

    Trong ví dụ trên, chúng tôi đã tạo một thủ tục được lưu trữ với 3 tham số đầu vào. Và chúng tôi sẽ sử dụng các tham số này để lọc ra các bản ghi từ một bảng mẫu. Hơn nữa, chúng tôi cũng đã xác định một giá trị mặc định cho mỗi tham số. Vì vậy, ngay cả khi chúng tôi không chuyển bất kỳ giá trị nào cho tham số đầu vào, quy trình sẽ sử dụng các giá trị mặc định cho hoạt động.

    Đây là một ví dụ thực thi của quy trình này.

      SỬ DỤNG [sqlserverguides]
    ĐI
    
    EXEC [dbo]. [Usp_FilterRecods] @start_date = '2020-03-13', @end_date = '2021-09-13'  

    Trong quá trình thực thi, chúng tôi chưa xác định tham số tên quốc gia giá trị. Vì vậy, quy trình sẽ sử dụng giá trị mặc định cho quốc gia và trả về kết quả sau.

    Cách chuyển các tham số động cho thủ tục được lưu trữ trong máy chủ sql Output

    Bạn cũng có thể thích: Ví dụ về thủ tục được lưu trữ nâng cao trong SQL Server

    Trong hướng dẫn SQL Server này, chúng ta đã học Cách thực thi các thủ tục được lưu trữ trong SQL Server . Chúng tôi cũng đã thảo luận về các ví dụ khác nhau liên quan đến việc thực thi các thủ tục được lưu trữ trong SQL Server. Đây là danh sách đầy đủ các chủ đề mà chúng tôi đã đề cập.

    • Cách thực thi thủ tục đã lưu trữ trong SQL Serer
    • Cách thực thi các thủ tục đã lưu trữ tự động trong SQL Server
    • Thực thi thủ tục đã lưu trữ với các tham số trong SQL Server Management Studio
    • Cách thực thi thủ tục được lưu trữ mà không có tham số trong SQL Server
    • Cách thực thi thủ tục được lưu trữ có tham số trong SQL Server
    • Thực thi thủ tục được lưu trữ với nhiều tham số
    • Cách thực thi thủ tục được lưu trữ trong máy chủ sql với các tham số đầu vào
    • Cách thực thi thủ tục được lưu trữ trong máy chủ sql với các tham số đầu ra
    • Thực thi thủ tục đã lưu trữ với các tham số đầu vào và đầu ra trong SQL Server
    • Cách thực thi thủ tục đã lưu trong câu lệnh select SQL Server
    • Thực thi thủ tục đã lưu trữ trong thủ tục được lưu trữ với các tham số
    • Cách chuyển các tham số động cho thủ tục được lưu trữ trong SQL Server
    • Thực thi thủ tục đã lưu trữ với câu lệnh select làm tham số đầu vào
    • < li> Thực thi thủ tục được lưu trữ với các tham số ngày trong SQL Server

    • Thực thi thủ tục được lưu trữ với các tham số có giá trị bảng trong SQL Server
    • Cách thực thi thủ tục được lưu trữ trong SQL Server với giá trị trả về

    >

    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ủ đề thực hiện thủ tục được lưu trữ sql

Lab 5.B1: Viết thủ tục lưu trữ để tính tổng, ước số chung lớn nhất trong SQL Server

alt

  • Tác giả: Anh Nguyen Ngoc
  • Ngày đăng: 2020-06-08
  • Đánh giá: 4 ⭐ ( 7088 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Quản trị Cơ sở dữ liệu SQL Server playlist: https://www.youtube.com/playlist?list=PLn9lhDYvf_3Gdiz6uY9HAztCKapCvzTPe
    Nhóm thảo luận: https://www.facebook.com/groups/115838366528104

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

  • Tác giả: expressmagazine.net
  • Đánh giá: 4 ⭐ ( 8601 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.

Stored Procedure In SQL

  • Tác giả: viblo.asia
  • Đánh giá: 5 ⭐ ( 2957 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: I. Khái Niệm Các câu lệnh SQL có thể được nhúng vào trong các ngôn ngữ lập trình, thông qua đó chuỗi các thao tác trên cơ sở dữ liệu được xác định và thực thi nhờ vào các câu lệnh, các cấu trúc điều…

SQL Server: Thủ tục lưu trữ (SP)

  • Tác giả: www.v1study.com
  • Đánh giá: 3 ⭐ ( 5607 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Thủ tục lưu trữ (Stored Procedure – SP) là một nhóm các lệnh Transact-SQL (T-SQL) đóng vai trò như một khối lệnh đơn dùng để thực hiện một công việc (tác

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

  • Tác giả: itzone.com.vn
  • Đánh giá: 3 ⭐ ( 6763 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

Thủ Tục Lưu Trữ SQL Cho SQL Server

  • Tác giả: www.codehub.com.vn
  • Đánh giá: 3 ⭐ ( 5457 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Thủ Tục Lưu Trữ Là Gì?
    ======================

    Một thủ tục được lưu trữ là một mã SQL được chuẩn bị mà bạn có thể lưu, do đó, mã có thể được tái sử dụng nhiều lần.

    Vì vậy, nếu bạn có một truy vấn SQL mà…

Chèn và cuộc gọi thủ tục được lưu trữ được thực hiện theo thứ tự ngược khi bạn sử dụng bộ điều hợp BizTalk cho DB2

  • Tác giả: support.microsoft.com
  • Đánh giá: 5 ⭐ ( 8542 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mô tả sự cố trong đó chèn và quy trình được lưu trữ cuộc gọi không được xử lý theo mong muốn trong máy chủ tích hợp máy chủ 2013. Xảy ra khi bạn sử dụng bộ điều hợp BizTalk cho DB2.

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  Giải mã hàm casefold () trong Python - cách sử dụng casefold trong python

By ads_php