Můžeme předat pole uložené proceduře na SQL Server?
Můžeme předat pole uložené proceduře na SQL Server?

Video: Můžeme předat pole uložené proceduře na SQL Server?

Video: Můžeme předat pole uložené proceduře na SQL Server?
Video: Passing a datatable to a Stored Procedure in SQL SERVER 2024, Listopad
Anonim

Neexistuje žádná podpora pro pole v sql server ale existuje několik způsobů, jak můžete projít sběr do a uloženo proc.

Kromě toho můžeme předat seznam v uložené proceduře?

Ne, pole/ seznamy mohou nesmí být předány přímo na SQL Server. K dispozici jsou následující možnosti: Míjení oddělený čárkou seznam a poté mít funkci v SQL rozdělit seznam . Čárka oddělena seznam bude s největší pravděpodobností bude předán jako Nvarchar()

Za druhé, jak předáte hodnotu řetězce oddělenou čárkami do uložené procedury v SQL? Následující uložená procedura získá záznamy o zaměstnancích, pro které jsou ID předána pomocí řetězce odděleného (odděleného) čárkou.

  1. VYTVOŘIT POSTUP GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. TAK JAKO.
  4. ZAČÍT.
  5. SELECT Jméno, Příjmení.
  6. OD ZAMĚSTNANCŮ.
  7. WHERE EmployeeId IN(
  8. VYBRAT CAST (položka JAKO CELÉ ČÍSLO)

Proč by tedy velké pole nemělo být předáno proceduře podle hodnoty?

Důvod ty umět 't složit an pole podle hodnota je protože tam je žádný konkrétní způsob sledování pole velikost taková, že logika vyvolání funkce bych vědět, kolik paměti alokovat a co kopírovat. Vy může projít instance třídy, protože třídy mít konstruktéři. Pole ne.

Co jsou tabulkové parametry?

A stůl - ceněný parametr je parametr s stůl typ. Pomocí tohoto parametr , můžete odeslat více řádků dat do uložené procedury nebo parametrizovaného příkazu SQL ve tvaru a stůl . Transact-SQL lze použít pro přístup k hodnotám sloupců stůl - ceněné parametry.

Doporučuje: