Bạn đang xem : cách chuyển tham số trong máy chủ sql thủ tục được lưu trữ

Trong bài viết này, chúng ta sẽ tìm hiểu về tham số thủ tục được lưu trữ của SQL Server . Chúng ta sẽ thảo luận về cách các tham số hoạt động trong thủ tục được lưu trữ với một số ví dụ thực tế. Danh sách sau đây chứa các chủ đề liên quan đến các tham số thủ tục được lưu trữ mà chúng ta sẽ thảo luận trong bài viết này.

  • Các kiểu tham số thủ tục được lưu trữ của SQL Server
  • Độ dài tối đa của tham số thủ tục được lưu trữ trong SQL Server
  • Tham số thủ tục được lưu trữ của SQL Server là tùy chọn
  • Thủ tục được lưu trữ của SQL Server tham số từ select
  • Bảng hệ thống tham số thủ tục được lưu trữ của SQL Server
  • Tham số thủ tục được lưu trữ của SQL Server phân biệt chữ hoa chữ thường
  • Tham số thủ tục được lưu trữ của SQL Server không được rỗng
  • < li> Tham số kiểm tra thủ tục được lưu trữ của SQL Server null

  • Tham số thủ tục được lưu trữ của SQL Server null
  • Tham số thủ tục được lưu trữ của SQL Server mặc định
  • Mảng tham số thủ tục được lưu trữ của SQL Server
  • Tham số thủ tục được lưu trữ của SQL Server dưới dạng bảng
  • Boolean tham số thủ tục được lưu trữ của SQL Server
  • Thứ tự thủ tục được lưu trữ của SQL Server theo tham số
  • Thủ tục được lưu trữ của SQL Server cho phép cập nhật chèn tham số null

Các loại tham số thủ tục được lưu trữ của Máy chủ SQL

Chúng tôi xác định các tham số trong một thủ tục được lưu trữ khi chúng tôi tạo một thủ tục được lưu trữ trên Máy chủ SQL . Trong SQL Server, có hai loại tham số thủ tục được lưu trữ:

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

Tham số đầu vào:

Thông thường, chúng tôi sử dụng các thủ tục được lưu trữ để thực hiện thao tác trên một số dữ liệu. Khi chúng ta gọi thủ tục được lưu trữ, chúng ta chuyển các giá trị dữ liệu cho thủ tục được lưu trữ thông qua các tham số đầu vào. Thủ tục được lưu trữ sẽ nhận các tham số đầu vào này và sử dụng chúng để hoàn thành hoạt động.

Cú pháp chung để xác định tham số đầu vào là:

  TẠO THỦ TỤC & lt; tên thủ tục & gt; & lt; tham số đầu vào 1 & gt; & lt; kiểu dữ liệu & gt;
     & lt; đầu vào tham số 2 & gt; & lt; kiểu dữ liệu & gt;, ..... & lt; tham số đầu vào N & gt; & lt; kiểu dữ liệu & gt;
BẰNG 
& lt; nội dung của thủ tục được lưu trữ & gt;  
  • Trong khi xác định các thông số thủ tục được lưu trữ, chúng ta cần xác định kiểu dữ liệu của các tham số đầu vào. Chúng tôi có thể xác định nhiều tham số đầu vào được phân tách bằng dấu phẩy.
  • Chúng tôi có thể sử dụng các tham số đầu vào này trong phần thân thủ tục được lưu trữ.

Hãy để chúng tôi xem một ví dụ ngay bây giờ:

  • Trong đoạn mã dưới đây, chúng tôi đã tạo một quy trình được lưu trữ với hai tham số đầu vào thuộc loại ineteger.
  • Chúng tôi sẽ sử dụng hai giá trị đầu vào này để tìm tổng của chúng.
  •   SỬ DỤNG chính
    ĐI
    TẠO THỦ TỤC dbo.FindSum @ num1 int, @ num2 int
    BẰNG 
    BẮT ĐẦU
    TUYÊN BỐ
    @sum int
    SET @ sum = @ num1 + @ num2
    PRINT ('Tổng là:' + STR (@ num1 + @ num2))
    HẾT  
    • Bây giờ chúng ta sẽ thực thi thủ tục đã lưu trữ và chuyển hai giá trị cho các tham số đầu vào.
      SỬ DỤNG chính
    ĐI
    EXEC dbo.FindSum 25, 15  

    Các loại tham số thủ tục được lưu trữ trên SQL Server Đầu ra Thủ tục Đã lưu trữ

    Bằng cách này, chúng tôi sử dụng các tham số đầu vào trong SQL Server.

    Đọc Thủ tục được lưu trữ thay thế trong SQL Server

    Thông số đầu ra:

    Khi chúng tôi thực hiện một thao tác bằng thủ tục đã lưu trữ, chúng tôi có thể muốn một số giá trị đầu ra được thủ tục trả về, để sử dụng các giá trị đầu ra đó ở một nơi khác. Trong những trường hợp như vậy, chúng tôi sử dụng tham số đầu ra trong các thủ tục được lưu trữ .

    • Trong khi khai báo tham số đầu ra, chúng ta cần sử dụng từ khóa OUTPUT để chỉ định rằng tham số thuộc kiểu đầu ra.
    • Cú pháp chung để khai báo đầu ra paramater là:
      TẠO THỦ TỤC & lt; tên thủ tục & gt; & lt; tham số đầu ra & gt; & lt; kiểu dữ liệu & gt; ĐẦU RA
    BẰNG 
    & lt; nội dung của thủ tục được lưu trữ & gt;  
    • Hãy để chúng tôi xem một ví dụ.
    • Hãy xem xét quy trình được lưu trữ đã tạo ở trên để tìm tổng.
    • Chúng tôi sẽ thay đổi quy trình tương tự. Nhưng lần này chúng ta sẽ trả về kết quả thông qua một tham số đầu ra.
      SỬ DỤNG chính
    ĐI
    THỦ TỤC THAY THẾ dbo.FindSum @ num1 int, @ num2 int, @sum int OUTPUT
    BẰNG 
    BẮT ĐẦU
    SET @ sum = @ num1 + @ num2
    HẾT  
    • Biến @sum là biến đầu ra kiểu số nguyên sẽ chuyển giá trị cho thủ tục gọi.
    • Trong khi thực hiện thủ tục, chúng ta cần đề cập đến biến mà chúng ta muốn lưu trữ giá trị đầu ra.
      SỬ DỤNG chính
    ĐI
    TUYÊN BỐ
    @result int
    EXEC dbo.FindSum 45, 57, @result OUTPUT
    IN (@result)  
    • Trong ví dụ của chúng tôi, chúng tôi đang lưu trữ giá trị đầu ra trong biến @result .

    các loại tham số thủ tục được lưu trữ SQL Server Thực thi thủ tục được lưu trữ.

    Như vậy, bạn có thể đã hiểu các kiểu tham số thủ tục được lưu trữ của SQL Server.

    Đọc Thử bắt trong quy trình được lưu trữ của SQL Server

    Độ dài tối đa của tham số thủ tục được lưu trữ trên SQL Server

    Trong phần này, chúng ta sẽ thảo luận về độ dài tối đa của thông số thủ tục được lưu trữ .

    Nếu bạn đang nói về số lượng tham số tối đa mà bạn có thể chuyển vào một thủ tục được lưu trữ thì con số tối đa là 2100 . Bạn không thể chuyển hơn 2100 tham số.

    Nhưng nếu bạn đang nói về kích thước của tham số có thể được xác định trong một thủ tục được lưu trữ, thì kích thước tối đa là 2 ^ 31-1 byte (2 GB). Điều đó có nghĩa là nếu bạn đang xác định một tham số thuộc bất kỳ kiểu dữ liệu nào, thì dữ liệu tối đa mà nó có thể lưu trữ là 2 ^ 31-1 byte (2 GB).

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

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

    Trong thủ tục được lưu trữ trên Máy chủ SQL , bạn cũng có thể xác định các tham số tùy chọn. Đối với điều này, bạn phải gán một giá trị mặc định cho tham số bạn muốn làm tùy chọn. Kết quả là, nếu không có giá trị nào được hàm hoặc thủ tục gọi chuyển, thì một giá trị mặc định sẽ được chuyển cho thủ tục được lưu trữ. Hãy để chúng tôi xem một ví dụ về điều này.

    • Chúng tôi có một bảng được gọi là Người .

    Tham số thủ tục được lưu trữ trên SQL Server tùy chọn Người Bảng

    • Chúng tôi sẽ tạo một thủ tục được lưu trữ để chèn các giá trị vào bảng. Chúng tôi sẽ chuyển các giá trị dưới dạng tham số đầu vào:
      SỬ DỤNG chính
    ĐI
    TẠO QUY TRÌNH dbo.InsertIntoPersons @FirstName nchar (10), @LastName nchar (10),
    @Age smallint, @Gender nchar (7), @Email nchar (30), @Phone nchar (20), @Location nchar (20)
    BẰNG 
    BẮT ĐẦU
    CHÈN VÀO dbo.Persons (
    [Tên], [Họ], Tuổi, Giới tính, Email, Điện thoại, Vị trí)
    GIÁ TRỊ (@FirstName, @LastName, @Age, @Gender, @Email, @Phone, @Location)
    CHẤM DỨT
     
    • Giả sử chúng ta không chuyển bất kỳ giá trị nào cho tham số @Phone . Trong trường hợp đó, chúng tôi sẽ gặp lỗi.
      SỬ DỤNG chính
    ĐI
    EXEC dbo.InsertIntoPersons @ FirstName = 'Thomas', @ Lastname = 'Edison', @ Age = 34,
    @ Gender = 'Nam', @ Email = 'thomasthomas123@gmail.com', @ Location = 'Austin'  

    Tham số tùy chọn của thủ tục được lưu trữ trên SQL Server Lỗi Khi Thông số Tùy chọn không được xác định

    • Nhưng chúng tôi có thể làm cho các tham số này trở thành tùy chọn bằng cách gán cho chúng một số giá trị mặc định.
    • Để chỉ định các giá trị mặc định, hãy thay đổi quy trình được lưu trữ dưới dạng:
      SỬ DỤNG chính
    ĐI
    THỦ TỤC ALTER dbo.InsertIntoPersons @FirstName nchar (10), @LastName nchar (10),
    @Age smallint, @Gender nchar (7), @Email nchar (30) = 'N / A', @Phone nchar (20) = 'N / A', @Location nchar (20)
    BẰNG 
    BẮT ĐẦU
    CHÈN VÀO dbo.Persons (
    [Tên], [Họ], Tuổi, Giới tính, Email, Điện thoại, Vị trí)
    GIÁ TRỊ (@FirstName, @LastName, @Age, @Gender, @Email, @Phone, @Location)
    CHẤM DỨT
     
    • Chúng tôi đã xác định ‘N / A’ làm giá trị mặc định cho tham số @Phone. Điều này có nghĩa là nếu không có giá trị nào được chuyển, giá trị mặc định sẽ được chuyển cho tham số.
    • Bây giờ, nếu chúng tôi cố gắng thực thi quy trình đã lưu trữ mà không chuyển bất kỳ giá trị nào cho tham số @Phone , chúng tôi sẽ không gặp bất kỳ lỗi nào.
      SỬ DỤNG chính
    ĐI
    EXEC dbo.InsertIntoPersons @ FirstName = 'Thomas', @ Lastname = 'Edison', @ Age = 34,
    @ Gender = 'Nam', @ Email = 'thomasthomas123@gmail.com', @ Location = 'Austin'
    CHỌN * TỪ dbo.Persons  

    tham số tùy chọn thủ tục được lưu trữ SQL Server Đã chèn hàng bằng tham số tùy chọn

    Như vậy, bạn có thể đã biết cách tạo tham số tùy chọn trong thủ tục được lưu trữ trên SQL Server.

    Tham số thủ tục được lưu trữ của SQL Server từ lựa chọn

    Trong phần này, bạn sẽ tìm hiểu cách sử dụng kết quả của câu lệnh Chọn làm tham số đầu vào trong quy trình được lưu trữ trong SQL Server . Bạn có thể sử dụng phương pháp sau để thực hiện tác vụ này:

    • Tạo một số biến và lưu trữ kết quả của câu lệnh Select trong các biến đó.
    • Xác định các tham số đầu vào của các thủ tục được lưu trữ theo các biến đã tạo trước đó.
    • Đạt các biến lưu trữ kết quả của các câu lệnh Select cho các tham số đầu vào của thủ tục được lưu trữ trong khi thực hiện thủ tục được lưu trữ.

    Hãy cho chúng tôi hiểu điều này bằng một ví dụ:

    • Xem xét bảng Khách hàng sau đây.

    Các tham số thủ tục được SQL Server lưu trữ từ select Khách hàng Bảng

    • Đầu tiên, chúng tôi sẽ tạo một thủ tục lưu trữ sẽ chỉ hiển thị các giá trị của các tham số đầu vào.
      SỬ DỤNG chính
    ĐI
    TẠO THỦ TỤC dbo.SP Khách hàng @ID int, @Name nchar (20)
    BẰNG 
    BẮT ĐẦU
    PRINT ('Tên khách hàng là:' + @ Tên)
    PRINT ('ID khách hàng là:' + STR (@ID))
    HẾT  
    • Sau đó, chúng tôi sẽ tạo hai biến để lưu trữ các giá trị ID khách hàng Tên khách hàng .
    • Bây giờ chúng ta sẽ thực hiện câu lệnh select và lưu trữ kết quả vào các biến.
    • Sau khi các giá trị được lưu trữ trong các biến, hãy chuyển các biến này làm đầu vào tham số cho thủ tục được lưu trữ.
      SỬ DỤNG chính
    ĐI
    TUYÊN BỐ
    @CustomerID int,
    @CustomerName nchar (20)
    
    SELECT @ CustomerID = [ID khách hàng]
    , @ CustomerName = [Tên khách hàng]
    TỪ dbo.Khách hàng
    WHERE [ID khách hàng] = 1200
    EXEC dbo.SPCustomers @CustomerID, @CustomerName  

    tham số thủ tục được lưu trữ từ SQL Server chọn Thực thi thủ tục đã lưu trữ

    • Như bạn có thể thấy, các giá trị mong muốn được in trong đầu ra.

    Do đó, bạn có thể đã hiểu cách sử dụng đầu ra của câu lệnh Select làm tham số đầu vào trong các thủ tục được lưu trữ.

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

    Bảng hệ thống thông số thủ tục được lưu trữ của Máy chủ SQL

    Trong phần này, chúng ta sẽ thảo luận về cách thức và vị trí các tham số thủ tục được lưu trữ được lưu trữ trong các bảng hệ thống. Bạn sẽ thấy nhiều bảng hệ thống mà bạn có thể sử dụng để lấy thông tin về các tham số thủ tục được lưu trữ trên SQL Server.

    Bạn có thể sử dụng truy vấn sau để nhận thông tin về các thủ tục và thông số được lưu trữ:

      SELECT procedure.name, para. *
    Thủ tục FROM sys.procedures
    INNER JOIN sys.parameters para ON procedure.object_id = para.object_id  

    Bảng hệ thống tham số thủ tục được lưu trữ trong SQL Server Truy vấn bảng hệ thống

    • Truy vấn trên sẽ cung cấp cho bạn nhiều thông tin khác nhau về các tham số thủ tục được lưu trữ như nó thuộc về thủ tục được lưu trữ nào, id đối tượng, id tham số, độ dài tối đa của tham số và nhiều thông tin khác.
    • Nếu bạn muốn nhận thông tin về kiểu dữ liệu của các tham số thủ tục được lưu trữ, bạn có thể truy vấn bảng loại . Bạn có thể sử dụng INNER JOIN với các bảng sytem khác để có được thông tin mong muốn.
      CHỌN thủ tục.name, typ.name, typ.max_length, para. *
    Thủ tục FROM sys.procedures
    INNER JOIN sys.parameters para ON procedure.object_id = para.object_id
    INNER JOIN sys.types typ trên para.system_type_id = typ.system_type_id  

    bảng hệ thống tham số thủ tục được lưu trữ SQL Server Truy vấn bảng hệ thống

    • INFORMATION_SCHEMA.PARAMETERS cũng lưu trữ thông tin về các tham số. Nếu không hài lòng với thông tin trên, bạn có thể sử dụng các truy vấn dưới đây để tìm thêm thông tin về các tham số:
      CHỌN * TỪ INFORMATION_SCHEMA.PARAMETERS  

      CHỌN * TỪ INFORMATION_SCHEMA.ROUTINES  

    Do đó, bạn có thể đã thấy nhiều cách khác nhau để lấy thông tin về các tham số thủ tục được lưu trữ trong bảng hệ thống.

    Đọc Quy trình được lưu trữ trên SQL Server so với chức năng

    Các tham số thủ tục được lưu trữ của Máy chủ SQL phân biệt chữ hoa chữ thường

    Trong phần này, chúng ta sẽ thảo luận về phân biệt chữ hoa chữ thường trong các thủ tục được lưu trữ trên SQL Server. Độ phân biệt chữ hoa chữ thường phụ thuộc vào cấu hình đối chiếu mà bạn đã chọn tại thời điểm tạo cơ sở dữ liệu.

    Nói chung, khi bạn cài đặt SQL Server và tạo cơ sở dữ liệu, đối chiếu mặc định không phân biệt chữ hoa chữ thường. Do đó, khi bạn tạo một số đối tượng hoặc lưu trữ một số dữ liệu trong cơ sở dữ liệu, tất cả các tên và dữ liệu không phân biệt chữ hoa chữ thường, tức là dữ liệu có thể là chữ thường hoặc chữ hoa. Ngoài ra, các tham số thủ tục được lưu trữ không phân biệt chữ hoa chữ thường trong những trường hợp như vậy.

    Bạn có thể xác minh đối chiếu bạn đang sử dụng bằng lệnh sau:

      SỬ DỤNG chính
    ĐI
    CHỌN THUỘC TÍNH MÁY CHỦ ('Đối chiếu')  

    Các tham số thủ tục được lưu trữ trên SQL Server có phân biệt chữ hoa chữ thường Cài đặt đối chiếu hiện tại

    • Cấu hình đối chiếu hiện tại là SQL_Latin1_General_CP1_CI_AS .
    • CI trong cấu hình trên là viết tắt của cụm từ Phân biệt chữ hoa chữ thường.

    Tham số thủ tục được lưu trữ của Máy chủ SQL không rỗng

    Đôi khi, bạn có thể cần ngăn một tham số thủ tục được lưu trữ nhận giá trị null. Bạn có thể nghĩ rằng sử dụng ràng buộc NOT NULL trong khi khai báo tham số như khi bạn khai báo một biến. Nhưng bạn không thể làm điều này. Bạn sẽ gặp lỗi.

    Cách phù hợp để triển khai chức năng này là xác minh giá trị của tham số. Xác minh xem có bất kỳ giá trị NULL nào được chuyển cho thủ tục được lưu trữ dưới dạng tham số hay không và thực hiện hành động mong muốn. Để tìm hiểu thêm về kỹ thuật này, bạn có thể tham khảo phần tiếp theo bên dưới.

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

    Tham số kiểm tra thủ tục được lưu trữ trên SQL Server null

    Có những trường hợp khi giá trị null có thể được chuyển cho một tham số thủ tục được lưu trữ. Nhưng nếu bạn không muốn chấp nhận các giá trị null thì sao. Trong phần này, bạn sẽ học cách kiểm tra xem tham số thủ tục được lưu trữ có chứa giá trị null hay không.

    • Hãy để chúng tôi xem ví dụ,
    • Chúng tôi đang tạo một quy trình được lưu trữ để truy xuất dữ liệu từ một bảng.
      SỬ DỤNG chính
    ĐI
    TẠO THỦ TỤC dbo.SPOrderDetails @OrderID int
    BẰNG 
    BẮT ĐẦU
    BẮT ĐẦU THỬ
    NẾU @OrderID LÀ KHÔNG ĐỦ
    RAISERROR ('Giá trị NULL được chuyển', 15,1)
    KHÁC
    CHỌN * TỪ dbo.OrderDetails WHERE [Order Number] = @ OrderID
    HẾT THỬ
    BẮT ĐẦU
    PRINT ('Giá trị rỗng không được phép trong quy trình này')
    KẾT THÚC
    HẾT  
    • Chúng tôi đã triển khai quy trình xác minh để kiểm tra xem có thông số nào chứa giá trị NULL hay không.
    • Bây giờ, hãy để chúng tôi thực thi quy trình đã lưu trữ với đầu vào hợp lệ.
      SỬ DỤNG chính
    ĐI
    EXEC dbo.SPOrderDetails 8001  

    Tham số kiểm tra thủ tục được lưu trữ trên SQL Server null Thực thi thủ tục đã lưu trữ với đầu vào hợp lệ

    • Các phản hồi được hiển thị như mong đợi.
    • Điều này thời gian cố gắng chuyển một giá trị NULL cho tham số.

      SỬ DỤNG chính
    ĐI
    EXEC dbo.SPOrderDetails NULL  

    tham số kiểm tra thủ tục được lưu trữ null SQL Server Thực thi thủ tục được lưu trữ với giá trị NULL

    • Như mong đợi, ngoại lệ được ném ra khi giá trị NULL được truyền. < / li>

    Vì vậy, bạn có thể đã biết cách kiểm tra xem bất kỳ tham số thủ tục được lưu trữ nào có chứa giá trị NULL hay không.

    Tham số thủ tục được lưu trữ trên SQL Server null

    Trong phần này, chúng ta sẽ thảo luận về giá trị NULL trong các tham số thủ tục được lưu trữ. Bạn sẽ tìm hiểu cách bạn có thể gán giá trị NULL cho một tham số thủ tục được lưu trữ. Ngoài ra, cách bạn có thể sử dụng giá trị NULL làm giá trị mặc định trong tham số thủ tục được lưu trữ.

    • Chúng tôi đang tạo một thủ tục được lưu trữ sẽ chấp nhận một tham số đầu vào và in ra giá trị của nó.

      SỬ DỤNG chính
    ĐI
    TẠO THỦ TỤC dbo.NullValue @Parameter int
    BẰNG 
    BẮT ĐẦU
    CHỌN @Parameter AS ShowValue
    CHẤM DỨT
     
    • Để chuyển một giá trị NULL, hãy thực hiện thủ tục được lưu trữ dưới dạng:
      SỬ DỤNG chính
    ĐI
    EXEC dbo.NullValue NULL  

    Tham số thủ tục được lưu trữ trên SQL Server null Truyền giá trị NULL cho Tham số

    Bạn cũng có thể sử dụng tham số NULL làm tham số mặc định. Trong phần tiếp theo bên dưới, bạn có thể tìm hiểu cách sử dụng các tham số mặc định để tránh lỗi nếu không có giá trị nào được chuyển cho một quy trình được lưu trữ.

    Chỉ cần khởi tạo tham số với giá trị NULL khi bạn tạo thủ tục được lưu trữ để gán giá trị NULL làm tham số mặc định.

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

    Mặc định các tham số thủ tục được lưu trữ trên SQL Server

    Trong phần này, bạn sẽ tìm hiểu cách sử dụng và tầm quan trọng của các tham số mặc định trong SQL Server với sự trợ giúp của một ví dụ.

    Chúng tôi sử dụng các tham số mặc định trong SQL Server để đảm bảo rằng nếu không có giá trị nào được cung cấp cho tham số thì giá trị mặc định được coi là giá trị được cung cấp. Điều này giúp ngăn chương trình bị hỏng trong trường hợp không có giá trị nào được cung cấp cho tham số. Ngoài ra, nếu bạn muốn cung cấp giá trị mặc định cho một cột thay vì giá trị null, bạn có thể sử dụng các tham số mặc định.

    Ví dụ: bạn đã tạo một thủ tục được lưu trữ và xác định một số tham số đầu vào. Bây giờ nếu bạn không cung cấp bất kỳ giá trị nào cho tham số thủ tục được lưu trữ tại thời điểm thực thi nó, công cụ cơ sở dữ liệu SQL Server sẽ báo lỗi cho biết tham số đầu vào mong đợi.

    Để tránh các điều kiện như vậy, bạn có thể sử dụng tham số mặc định mà bạn nghi ngờ rằng có thể có trường hợp không có giá trị nào được chuyển cho tham số. Chúng tôi đã tạo một ví dụ bên dưới để minh họa việc sử dụng các tham số mặc định.

    • Xem xét bảng Sản phẩm sau.

    Tham số thủ tục được lưu trữ trên SQL Server mặc định Sản phẩm Bảng

    • Chúng tôi sẽ tạo một quy trình được lưu trữ sẽ chèn một bản ghi vào bảng này.
      SỬ DỤNG [master]
    ĐI
    TẠO QUY TRÌNH dbo.SPProducts @ID int, @Name nchar (30)
    , @Price real, @Rating int
    BẰNG 
    BẮT ĐẦU
    CHÈN VÀO dbo. Sản phẩm ([ID sản phẩm], Tên, Giá, Xếp hạng)
    GIÁ TRỊ (@ID, @Name, @Price, @Rating)
    HẾT  
    • Giả sử một tình huống nếu sản phẩm không có xếp hạng và chúng tôi không chỉ định giá trị cho cột Xếp hạng trong khi thực hiện quy trình được lưu trữ. Chúng tôi sẽ gặp lỗi nếu chúng tôi làm điều này. Hãy để chúng tôi xem lỗi.
      SỬ DỤNG chính
    ĐI
    Sản phẩm EXEC dbo.SPP 1244, 'Dầu dưỡng tóc', 350  

    Tham số mặc định của thủ tục được lưu trữ trong SQL Server Lỗi do không có giá trị nào được cung cấp cho thông số @Rating

    • Chúng tôi có thể sử dụng tham số mặc định để tránh lỗi này.
    • Chúng tôi sẽ thay đổi quy trình được lưu trữ và cung cấp giá trị mặc định là 0 trong trường hợp không có giá trị nào được chỉ định cho tham số @Rating .
      SỬ DỤNG [master]
    ĐI
    THỦ TỤC ALTER dbo.SPProducts @ID int, @Name nchar (30)
    , @Price real, @Rating int = 0
    BẰNG 
    BẮT ĐẦU
    CHÈN VÀO dbo. Sản phẩm ([ID sản phẩm], Tên, Giá, Xếp hạng)
    GIÁ TRỊ (@ID, @Name, @Price, @Rating)
    HẾT  
    • Nếu chúng tôi thực thi thủ tục đã lưu trữ mà không chuyển giá trị cho tham số @Rating, chúng tôi sẽ không gặp bất kỳ lỗi nào. Thay vào đó, giá trị mặc định, tức là 0 sẽ được sử dụng trong quy trình được lưu trữ.
      SỬ DỤNG chính
    ĐI
    Sản phẩm EXEC dbo.SPP 1244, 'Dầu dưỡng tóc', 350  

    tham số mặc định của thủ tục được lưu trữ SQL Server Giá trị mặc định được chèn

    • Bạn có thể thấy rằng giá trị mặc định tức là 0 được chèn vào bảng.

    Do đó, bạn có thể đã biết việc sử dụng các thông số mặc định và tầm quan trọng của chúng.

    Mảng tham số thủ tục được lưu trữ của Máy chủ SQL

    Không có khái niệm truyền một mảng làm tham số trong SQL Server. Tuy nhiên, bạn có thể đạt được chức năng này với sự trợ giúp của các thông số giá trị trong bảng.

    < p class = "ezoic-ad leader-3 leader-3115 adtester-container adtester-container-115">

    Bạn có thể tạo một tham số có giá trị bảng và tạo một cột để lưu trữ các giá trị mà bạn muốn chuyển dưới dạng một mảng. Sau đó, trong quy trình được lưu trữ, bạn có thể truy cập các giá trị đó từ tham số có giá trị bảng khi bạn truy cập từ bảng.

    Để biết thêm thông tin về các tham số giá trị trong bảng và cách tạo chúng, bạn có thể tham khảo phần tiếp theo bên dưới.

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

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

    Trong các thủ tục được lưu trữ trên SQL Server, bạn cũng có thể chuyển dữ liệu bảng tới các tham số đầu vào và thực hiện các thao tác khác nhau trên đó. Bạn sẽ tìm hiểu trong phần này cách bạn có thể chuyển dữ liệu bảng tới các tham số đầu vào thủ tục được lưu trữ. Bạn sẽ học tốt hơn khi có ví dụ minh họa.

    Đầu tiên, bạn phải tạo kiểu dữ liệu bảng do người dùng xác định. Sau đó, tạo một biến của kiểu dữ liệu do người dùng xác định này, chèn một số giá trị vào biến và chuyển nó vào thủ tục được lưu trữ dưới dạng tham số đầu vào. Ví dụ:

    • Xem xét bảng Điện thoại sau.

    Tham số thủ tục được lưu trữ trong SQL Server dưới dạng bảng Điện thoại Bảng

    • Đầu tiên, chúng tôi sẽ tạo một kiểu dữ liệu bảng do người dùng xác định là Bảng Điện thoại .
      SỬ DỤNG chính
    ĐI
    TẠO LOẠI dbo.Phonestype AS BẢNG
    (
    [Tên] nchar (10),
    [Họ] nchar (10),
    Điện thoại nchar (20)
    )  
    • Sau đó, chúng tôi sẽ tạo một thủ tục được lưu trữ sẽ lấy biến bảng làm tham số đầu vào và chèn dữ liệu biến bảng này vào bảng Điện thoại .
      SỬ DỤNG chính
    ĐI
    TẠO THỦ TỤC dbo.InsertIntoPhones @TableParameter dbo.Phonestype SN SÀNG
    BẰNG 
    BẮT ĐẦU
    ĐẶT SỐ TÀI KHOẢN BẬT
    CHÈN VÀO dbo.Phones (Điện thoại, [Tên], [Họ])
    CHỌN Điện thoại, [Tên], [Họ]
    TỪ @TableParameter
    HẾT  
    • Bây giờ, chúng ta sẽ khai báo một biến có giá trị trong bảng, hãy chèn một số dữ liệu vào đó mà chúng ta muốn truyền cho thủ tục được lưu trữ dưới dạng tham số.
    • Ngoài ra, chúng ta sẽ thực hiện thủ tục đã lưu trữ và chuyển bảng có giá trị biến là tham số inout.

      DECLARE
    @TableVariable dbo.Phonestype
    CHÈN VÀO @TableVariable (Điện thoại, [Tên], [Họ])
    GIÁ TRỊ ('+ 1 786 984 206', 'Jonathan', 'James')
    EXEC dbo.InsertIntoPhones @TableVariable  

    tham số thủ tục được lưu trữ dưới dạng bảng SQL Server Điện thoại Đã cập nhật bảng

    • Như mong đợi, hàng đã được chèn thành công vào Điện thoại bảng.

    Vì vậy, bạn có thể đã học cách có thể chuyển dữ liệu bảng làm tham số đầu vào cho một thủ tục được lưu trữ.

    Đọc SQL Server chọn từ quy trình được lưu trữ

    Tham số thủ tục được lưu trữ trên SQL Server boolean

    Trong phần này, bạn sẽ tìm hiểu về cách chuyển các giá trị boolean cho các thủ tục được lưu trữ trong SQL Server. Trong SQL Server, nếu bạn muốn sử dụng các giá trị boolean, bạn phải sử dụng kiểu dữ liệu bit . Một biến kiểu dữ liệu bit có thể lưu trữ 3 giá trị:

    1. 0 : Có thể được coi là sai.
    2. 1 : Có thể được coi là đúng.
    3. NULL : Không cung cấp giá trị hoặc giá trị rỗng.

    Bạn có thể sử dụng kiểu dữ liệu này khi bạn muốn sử dụng một số biến boolean. Chúng ta sẽ thảo luận trong phần này, cách bạn có thể sử dụng một biến bit để chuyển một giá trị boolean cho thủ tục được lưu trữ. Xem ví dụ bên dưới:

    • Giả sử rằng chúng tôi có bảng Đăng nhập lưu trữ tên người dùng và mật khẩu của mọi người.
    • Chúng tôi muốn tạo một quy trình được lưu trữ sẽ lấy thông tin đăng nhập của người dùng và xác minh chúng trong bảng.
    • Chúng tôi muốn một giá trị boolean làm giá trị trả về từ thủ tục được lưu trữ. Chúng tôi sẽ viết quy trình dưới dạng:
      SỬ DỤNG chính
    ĐI
    TẠO THỦ TỤC dbo.SPLogin @User nchar (20), @Pass nchar (20)
    , @ Kết quả bit OUTPUT
    BẰNG 
    BẮT ĐẦU
    NẾU TỒN TẠI (CHỌN * TỪ dbo.Login
    WHERE Tên người dùng = @ Người dùng VÀ Mật khẩu = @Pass)
    SET @ Kết quả = 1
    KHÁC
    SET @ Kết quả = 0
    HẾT  
    • Nếu thông tin đăng nhập đã có sẵn trong cơ sở dữ liệu, thì thủ tục được lưu trữ sẽ trả về giá trị true, tức là 1 giá trị khác, nó sẽ trả về giá trị sai, tức là 0 thông qua tham số đầu ra.
    • Bây giờ, chúng ta hãy thực thi quy trình đã lưu trữ bằng cách cung cấp thông tin đăng nhập đã được lưu trữ trong cơ sở dữ liệu.
     SỬ DỤNG chính
    ĐI
    TUYÊN BỐ
    @Boolean bit
    EXEC dbo.SPLogin 'Harry', 'harry123', @Boolean OUTPUT
    IN (@Boolean)  

    Tham số thủ tục được lưu trữ trên SQL Server boolean Đã trả về 1, tức là True

    • Bây giờ chúng tôi sẽ cung cấp thông tin đăng nhập không được lưu trữ trong cơ sở dữ liệu.
      SỬ DỤNG chính
    ĐI
    TUYÊN BỐ
    @Boolean bit
    EXEC dbo.SPLogin 'random', 'random', @Boolean OUTPUT
    IN (@Boolean)  

    tham số thủ tục được lưu trữ boolean SQL Server Trả về 0 tức là Sai

    ​​Do đó, bạn có thể đã biết cách sử dụng kiểu dữ liệu bit làm boolean trong tham số thủ tục được lưu trữ.

    Thứ tự thủ tục được lưu trữ trên SQL Server theo tham số

    Trong phần này, bạn sẽ tìm hiểu cách bạn có thể quyết định thứ tự của kết quả truy vấn Chọn trong một quy trình được lưu trữ dựa trên tham số đầu vào.

    • Chúng tôi đã tạo một ví dụ trong đó người dùng sẽ chuyển một mệnh đề ORDER BY. Ví dụ: ASC, DESC, v.v. làm tham số đầu vào cho thủ tục được lưu trữ.
    • Hơn nữa, chúng tôi sẽ tạo một biến trong đó chúng tôi sẽ lưu trữ truy vấn chọn và nối mệnh đề Order By với truy vấn. < / li>
    • Sau đó, chúng tôi sẽ thực hiện truy vấn.
      SỬ DỤNG chính
    ĐI
    TẠO THỦ TỤC dbo.SPPersons @OrderBy nchar (5)
    BẰNG 
    BẮT ĐẦU
    TUYÊN BỐ
    @Query nchar (60)
    SET @ Query = 'SELECT * FROM dbo.Persons ORDER BY [First Name]' + @OrderBy
    Thực hiện kiểm tra)
    HẾT  
    • Giờ đây, chúng ta có thể thực thi thủ tục đã lưu trữ:
      SỬ DỤNG chính
    ĐI
    EXEC dbo.SPPersons @ OrderBy = 'DESC'  

    Thủ tục được lưu trữ trong SQL Server truyền tham số theo tên Các bản ghi được sắp xếp theo thứ tự giảm dần

    • Như bạn có thể thấy, các bản ghi được sắp xếp theo thứ tự giảm dần.

    Bạn có thể thích các hướng dẫn về máy chủ SQL sau:

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

    • Các kiểu tham số thủ tục được lưu trữ của SQL Server
    • Độ dài tối đa của tham số thủ tục được lưu trữ trong SQL Server
    • Tham số thủ tục được lưu trữ của SQL Server là tùy chọn
    • Thủ tục được lưu trữ của SQL Server tham số từ select
    • Bảng hệ thống tham số thủ tục được SQL Server lưu trữ
    • Các tham số thủ tục được lưu trữ của SQL Server phân biệt chữ hoa chữ thường
    • Tham số thủ tục được lưu trữ của SQL Server không rỗng
    • Tham số kiểm tra thủ tục được lưu trữ của SQL Server null
    • Tham số thủ tục được lưu trữ của SQL Server null
    • SQL Server tham số thủ tục được lưu trữ mặc định
    • Mảng tham số thủ tục được lưu trữ của SQL Server
    • Tham số thủ tục được lưu trữ của SQL Server dưới dạng bảng
    • Tham số thủ tục được lưu trữ của SQL Server boolean
    • Thứ tự thủ tục được lưu trữ của SQL Server theo tham số
    • Thủ tục được lưu trữ của SQL Server cho phép cập nhật chèn tham số rỗng

    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ủ đề cách truyền tham số trong máy chủ sql thủ tục được lưu trữ

Bài 5: Giới thiệu về thủ tục lưu trữ (Stored Procedure) trong SQL Server

alt

  • Tác giả: Anh Nguyen Ngoc
  • Ngày đăng: 2020-06-05
  • Đánh giá: 4 ⭐ ( 1598 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

Truyền tham số vào Mysql Stored Procedure

  • Tác giả: freetuts.net
  • Đánh giá: 4 ⭐ ( 2641 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu Truyền tham số vào Mysql Stored Procedure, các loại tham số IN – OUT- INOUT trong MYSQL Stored procedure đầy đủ

T-SQL – Thủ tục được lưu trữ

  • Tác giả: isolution.pro
  • Đánh giá: 3 ⭐ ( 7394 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Máy chủ MS SQL Stored procedure được sử dụng để tiết kiệm thời gian viết lại mã bằng cách lưu trữ mã giống nhau trong cơ sở dữ liệu và cũng nhận được kết quả đầu ra cần thiết bằng cách chuyển các tham số. Cú pháp Sau đây là cú pháp cơ bản của việc tạo thủ tục đã…

Cách truyền tham số giá trị bảng cho thủ tục được lưu trữ từ mã .net

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 7200 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] DataTable, DbDataReaderhoặc IEnumerablecác đối tượng có thể được sử dụng để điền tham số có giá…

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

  • Tác giả: itzone.com.vn
  • Đánh giá: 5 ⭐ ( 4764 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á: 5 ⭐ ( 2554 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à…

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

  • Tác giả: www.v1study.com
  • Đánh giá: 3 ⭐ ( 4645 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

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  Làm cách nào để làm tròn một số trong Javascript? - làm tròn toán học js

By ads_php