Maaari ba nating ipasa ang array sa naka-imbak na pamamaraan sa SQL Server?
Maaari ba nating ipasa ang array sa naka-imbak na pamamaraan sa SQL Server?

Video: Maaari ba nating ipasa ang array sa naka-imbak na pamamaraan sa SQL Server?

Video: Maaari ba nating ipasa ang array sa naka-imbak na pamamaraan sa SQL Server?
Video: MEGA Chia GPU Farming and Plotting Guide for Linux - Gigahorse Start to Finish - 2023 2024, Nobyembre
Anonim

Walang suporta para sa array sa SQL Server ngunit may ilang mga paraan kung saan makakapasa ka koleksyon sa a nakaimbak na proc.

Sa tabi nito, maaari ba nating ipasa ang listahan sa nakaimbak na pamamaraan?

Hindi, arrays/ ang mga listahan ay maaari 't direktang ipapasa sa SQL Server. Available ang mga sumusunod na opsyon: pagpasa isang comma-delimited listahan at pagkatapos ay pagkakaroon ng isang function sa SQL hatiin ang listahan . Tinanggal ang kuwit listahan ay malamang na maipasa bilang isang Nvarchar()

Pangalawa, paano mo ipapasa ang isang comma separated string value sa isang naka-imbak na pamamaraan sa SQL? Ang sumusunod na naka-imbak na pamamaraan ay nakakakuha ng mga talaan ng mga Empleyado kung saan ang mga Id ay ipinasa gamit ang isang string na pinaghiwalay (tinatanggal) ng kuwit.

  1. GUMAWA NG PAMAMARAAN GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. AS.
  4. MAGSIMULA.
  5. PUMILI FirstName, LastName.
  6. MULA sa mga Empleyado.
  7. SAAN EmployeeId IN(
  8. PUMILI NG CAST(Item BILANG INTEGER)

Dahil dito, bakit ang isang malaking array ay hindi dapat ipasa sa isang pamamaraan ayon sa halaga?

Ang dahilan mo pwede 't pumasa isang array sa pamamagitan ng halaga ay dahil doon ay walang tiyak na paraan upang masubaybayan ang isang array's laki tulad na ang function na invocation logic gagawin alam kung gaano karaming memorya ang ilalaan at kung ano ang dapat kopyahin. Ikaw makakapasa isang class instance dahil classes mayroon mga konstruktor. Ang mga array ay hindi.

Ano ang mga parameter ng Table valued?

A mesa - pinahahalagahan na parameter ay isang parameter may a mesa uri. Gamit ito parameter , maaari kang magpadala ng maramihang mga hilera ng data sa isang naka-imbak na pamamaraan o isang parameterized na SQL command sa anyo ng isang mesa . Maaaring gamitin ang Transact-SQL upang ma-access ang mga halaga ng column ng mesa - pinahahalagahan na mga parameter.

Inirerekumendang: