Chúng ta có thể chuyển mảng cho thủ tục được lưu trữ trong SQL Server không?
Chúng ta có thể chuyển mảng cho thủ tục được lưu trữ trong SQL Server không?

Video: Chúng ta có thể chuyển mảng cho thủ tục được lưu trữ trong SQL Server không?

Video: Chúng ta có thể chuyển mảng cho thủ tục được lưu trữ trong SQL Server không?
Video: Bài 8: Tạo và sử dụng Store Procedure trong SQL Server 2024, Tháng mười hai
Anonim

Không có hỗ trợ cho mảng trong máy chủ sql nhưng có một số cách bạn có thể vượt qua bộ sưu tập đến một proc được lưu trữ.

Bên cạnh đó, chúng ta có thể chuyển danh sách trong thủ tục được lưu trữ không?

Không, mảng / danh sách có thể không được chuyển trực tiếp đến SQL Server. Lựa chọn tiếp theo đã khả thi: Đi qua được phân cách bằng dấu phẩy danh sách và sau đó có một hàm trong SQL tách danh sách . Phân cách bằng dấu phẩy danh sách sẽ rất có thể được chuyển dưới dạng Nvarchar ()

Thứ hai, làm thế nào để bạn chuyển một giá trị chuỗi được phân tách bằng dấu phẩy cho một thủ tục được lưu trữ trong SQL? Thủ tục được lưu trữ sau đây lấy các bản ghi của Nhân viên mà Id được chuyển bằng cách sử dụng một chuỗi được phân tách (phân tách) bằng dấu phẩy.

  1. TẠO THỦ TỤC Nhận nhân viên.
  2. @EaffeeIds VARCHAR (100)
  3. NHƯ.
  4. BẮT ĐẦU.
  5. CHỌN FirstName, LastName.
  6. TỪ Nhân viên.
  7. NHÂN VIÊN Ở ĐÂU (
  8. CHỌN CAST (Mục AS INTEGER)

Do đó, tại sao một mảng lớn không được chuyển cho một thủ tục theo giá trị?

Lý do bạn có thể 'NS đi qua một mảng qua giá trị là bởi vì ở đó Là không có cách cụ thể để theo dõi một mảng của kích thước sao cho logic gọi hàm sẽ biết cần phân bổ bao nhiêu bộ nhớ và những gì cần sao chép. Bạn có thể vượt qua một cá thể lớp vì các lớp có các nhà xây dựng. Mảng không.

Các tham số giá trị của Bảng là gì?

MỘT bàn - tham số có giá trị là một tham số với một bàn kiểu. Sử dụng cái này tham số , bạn có thể gửi nhiều hàng dữ liệu tới một thủ tục được lưu trữ hoặc một lệnh SQL được tham số hóa dưới dạng bàn . Transact-SQL có thể được sử dụng để truy cập các giá trị cột của bàn - các tham số có giá trị.

Đề xuất: