Kan vi skicka array till lagrad procedur i SQL Server?
Kan vi skicka array till lagrad procedur i SQL Server?

Video: Kan vi skicka array till lagrad procedur i SQL Server?

Video: Kan vi skicka array till lagrad procedur i SQL Server?
Video: What's new in SQL Server 2022 2024, Maj
Anonim

Det finns inget stöd för array i sql-server men det finns flera sätt du kan passera samling till en lagrad proc.

Förutom detta, kan vi skicka listan i lagrad procedur?

Nej, matriser/ listor kan skickas inte direkt till SQL Server. Följande alternativ är tillgängliga: Godkänd ett kommaavgränsat lista och sedan ha en funktion i SQL dela upp lista . Kommet avgränsat lista kommer sannolikt godkännas som en Nvarchar()

För det andra, hur skickar du ett kommaseparerat strängvärde till en lagrad procedur i SQL? Följande lagrade procedur hämtar poster för anställda för vilka Id:n skickas med hjälp av en sträng separerad (avgränsad) med kommatecken.

  1. SKAPA PROCEDUR GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. SOM.
  4. BÖRJA.
  5. VÄLJ Förnamn, Efternamn.
  6. FRÅN Anställda.
  7. WHERE EmployeeId IN(
  8. VÄLJ CAST(Artikel SOM HELTAL)

Följaktligen, varför skulle en stor array inte skickas till en procedur efter värde?

Anledningen till att du burk 't passera ett array förbi värde är för att där är inget specifikt sätt att spåra en arrays storlek så att funktionsanropslogiken skulle vet hur mycket minne som ska allokeras och vad som ska kopieras. Du kan passera en klassinstans eftersom klasser ha konstruktörer. Arrayer gör det inte.

Vad är tabellvärderade parametrar?

A tabell - värderad parameter är en parameter med en tabell typ. Använder detta parameter , kan du skicka flera rader med data till en lagrad procedur eller ett parameteriserat SQL-kommando i form av en tabell . Transact-SQL kan användas för att komma åt kolumnvärdena för tabell - värderade parametrar.

Rekommenderad: