Môžeme odovzdať pole do uloženej procedúry na serveri SQL Server?
Môžeme odovzdať pole do uloženej procedúry na serveri SQL Server?

Video: Môžeme odovzdať pole do uloženej procedúry na serveri SQL Server?

Video: Môžeme odovzdať pole do uloženej procedúry na serveri SQL Server?
Video: Review: Quiz 1 2024, November
Anonim

Neexistuje žiadna podpora pre pole v sql server ale existuje niekoľko spôsobov, ako môžete prejsť zber do a uložené proc.

Okrem toho môžeme odovzdať zoznam v uloženej procedúre?

Nie, polia/ zoznamy môžu sa neprenášajú priamo na server SQL Server. K dispozícii sú nasledujúce možnosti: Pasovanie oddelené čiarkou zoznam a potom má funkciu v SQL rozdeliť zoznam . Čiarka je oddelená zoznam bude s najväčšou pravdepodobnosťou bude odovzdaný ako Nvarchar()

Po druhé, ako odovzdávate hodnotu reťazca oddelenú čiarkou do uloženej procedúry v SQL? Nasledujúca uložená procedúra získa záznamy o zamestnancoch, pre ktorých sú ID odovzdané pomocou reťazca oddeleného (oddeleného) čiarkou.

  1. VYTVORIŤ POSTUP GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. AS.
  4. ZAČAŤ.
  5. SELECT Meno, Priezvisko.
  6. OD zamestnancov.
  7. WHERE EmployeeId IN(
  8. SELECT CAST(Item AS INTEGER)

Prečo by teda veľké pole nemalo byť odovzdané procedúre podľa hodnoty?

Dôvod ty môcť 't prejsť an pole podľa hodnota je pretože tam je žiadny konkrétny spôsob sledovania pole takú veľkosť, aby bola logika vyvolania funkcie by vedieť, koľko pamäte prideliť a čo kopírovať. vy môže prejsť inštancia triedy, pretože triedy mať konštruktérov. Polia nie.

Čo sú tabuľkové parametre?

A tabuľky - hodnotný parameter je a parameter s tabuľky typu. Pomocou tohto parameter , môžete odoslať viacero riadkov údajov do uloženej procedúry alebo parametrizovaného príkazu SQL vo forme a tabuľky . Transact-SQL možno použiť na prístup k hodnotám stĺpcov tabuľky - hodnotné parametre.

Odporúča: