Kunnen we array doorgeven aan opgeslagen procedure in SQL Server?
Kunnen we array doorgeven aan opgeslagen procedure in SQL Server?

Video: Kunnen we array doorgeven aan opgeslagen procedure in SQL Server?

Video: Kunnen we array doorgeven aan opgeslagen procedure in SQL Server?
Video: Complete React Query course in an hour | TanStack Query v4 for beginners 2024, Mei
Anonim

Er is geen ondersteuning voor reeks in sql-server maar er zijn verschillende manieren waarop je kunt passeren ophaling naar een opgeslagen proces.

Kunnen we daarnaast de lijst doorgeven in de opgeslagen procedure?

Nee, arrays/ lijsten kunnen niet rechtstreeks worden doorgegeven aan SQL Server. De volgende opties zijn beschikbaar: passeren een door komma's gescheiden lijst en dan een functie in SQL hebben, splitsen de lijst . De door komma's gescheiden lijst wil hoogstwaarschijnlijk worden doorgegeven als een Nvarchar()

Ten tweede, hoe geef je een door komma's gescheiden tekenreekswaarde door aan een opgeslagen procedure in SQL? De volgende opgeslagen procedure haalt de records op van werknemers waarvoor de ID's worden doorgegeven met behulp van een tekenreeks die wordt gescheiden (gescheiden) door komma's.

  1. PROCEDURE MAKEN GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. ALS.
  4. BEGINNEN.
  5. SELECTEER Voornaam, Achternaam.
  6. VAN Medewerkers.
  7. WHERE werknemer-ID IN(
  8. SELECTEER CAST (item ALS INTEGER)

Waarom zou daarom een grote array niet op waarde aan een procedure worden doorgegeven?

De reden dat je kan 't doorgang een reeks door waarde is omdat er is geen specifieke manier om een te volgen array's grootte zodanig dat de functie-aanroeplogica zou weet hoeveel geheugen u moet toewijzen en wat u moet kopiëren. Jij kan passeren een klasse-instantie omdat klassen hebben constructeurs. Arrays niet.

Wat zijn tabelwaardeparameters?

EEN tafel - gewaardeerde parameter is een parameter met een tafel type. Dit gebruiken parameter , kunt u meerdere rijen gegevens naar een opgeslagen procedure of een geparametriseerde SQL-opdracht sturen in de vorm van a tafel . Transact-SQL kan worden gebruikt om toegang te krijgen tot de kolomwaarden van de tafel - gewaardeerde parameters.

Aanbevolen: