Vai mēs varam nodot masīvu saglabātajai procedūrai SQL Server?
Vai mēs varam nodot masīvu saglabātajai procedūrai SQL Server?

Video: Vai mēs varam nodot masīvu saglabātajai procedūrai SQL Server?

Video: Vai mēs varam nodot masīvu saglabātajai procedūrai SQL Server?
Video: CS50 2015 - Week 8, continued 2024, Novembris
Anonim

Nav atbalsta masīvs iekšā sql serveris bet ir vairāki veidi, kā jūs varat nodot kolekcija uz a glabājas proc.

Bez tam, vai mēs varam nodot sarakstu saglabātajā procedūrā?

Nē, masīvi/ sarakstus var ' nedrīkst tieši nodot SQL serverim. Ir pieejamas šādas opcijas: Ejot garām ar komatu atdalīts sarakstu un pēc tam, kam ir funkcija SQL, sadaliet sarakstu . Komats atdalīts saraksts būs visticamāk tiks nodots kā Nvarchar()

Otrkārt, kā SQL saglabātajai procedūrai nodot ar komatu atdalītas virknes vērtību? Tālāk norādītā saglabātā procedūra iegūst ierakstus par darbiniekiem, kuriem tiek nodoti ID, izmantojot virkni, kas atdalīta (atdalīta) ar komatu.

  1. IZVEIDOT PROCEDŪRU GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. AS.
  4. SĀKT.
  5. ATLASĪT Vārdu, Uzvārdu.
  6. NO darbiniekiem.
  7. WHERE EmployeeId IN(
  8. ATLASĪT CAST (vienums KĀ VESELS SKAITS)

Tātad, kāpēc lielu masīvu nevajadzētu nodot procedūrai pēc vērtības?

Iemesls jums var 't caurlaide an masīvs autors vērtība ir jo tur ir nav īpaša veida, kā izsekot masīvs izmērs ir tāds, ka funkcijas izsaukšanas loģika būtu zināt, cik daudz atmiņas piešķirt un ko kopēt. Tu var paiet klases gadījums, jo klases ir konstruktori. Masīvi nav.

Kas ir tabulā vērtētie parametri?

A tabula - novērtētais parametrs ir parametrs ar tabula veids. Izmantojot šo parametrs , varat nosūtīt vairākas datu rindas uz saglabātu procedūru vai parametrizētu SQL komandu tabula . Transact-SQL var izmantot, lai piekļūtu kolonnu vērtībām tabula - novērtētie parametri.

Ieteicams: