Ar galime perduoti masyvą saugomai procedūrai SQL serveryje?
Ar galime perduoti masyvą saugomai procedūrai SQL serveryje?

Video: Ar galime perduoti masyvą saugomai procedūrai SQL serveryje?

Video: Ar galime perduoti masyvą saugomai procedūrai SQL serveryje?
Video: Pass an array into a SQL Server stored procedure - C# 2024, Gegužė
Anonim

Nėra paramos masyvas in sql serveris bet yra keli būdai gali praeiti surinkimas į a saugomas proc.

Be to, ar galime perduoti sąrašą išsaugotoje procedūroje?

Ne, masyvai/ sąrašai gali Nebus tiesiogiai perduodamas SQL serveriui. Galimos šios parinktys: Pravažiavimas kableliu atskirtas sąrašą o tada turėdami funkciją SQL suskaidykite sąrašą . Atskirtas kablelis sąrašas bus greičiausiai bus perduotas kaip Nvarchar()

Antra, kaip perduoti kableliais atskirtą eilutės reikšmę saugomai procedūrai SQL? Ši saugoma procedūra gauna įrašus apie darbuotojus, kurių ID perduodami naudojant eilutę, atskirtą (atskirtą) kableliais.

  1. KURTI PROCEDŪRĄ „GetEmployees“.
  2. @EmployeeIds VARCHAR(100)
  3. AS.
  4. PRADĖTI.
  5. PASIRINKITE Vardas, Pavarde.
  6. IŠ Darbuotojų.
  7. WHERE EmployeeId IN(
  8. PASIRINKTI CAST (elementas KAIP SVEIKAS SKAIČIUS)

Vadinasi, kodėl didelis masyvas neturėtų būti perduotas procedūrai pagal vertę?

Priežastis tu gali ne praeiti an masyvas pateikė vertė yra nes ten yra nėra konkretaus būdo sekti masyvo dydis toks, kad funkcijos iškvietimo logika būtų žinoti, kiek atminties skirti ir ką kopijuoti. Tu gali praeiti klasės pavyzdys, nes klasės turėti konstruktoriai. Masyvai ne.

Kas yra lentelės vertės parametrai?

A stalo - vertinamas parametras yra parametras su stalo tipo. Naudojant šį parametras , galite siųsti kelias duomenų eilutes į saugomą procedūrą arba parametrizuotą SQL komandą stalo . „Transact-SQL“gali būti naudojamas norint pasiekti stulpelių reikšmes stalo - vertinami parametrai.

Rekomenduojamas: