Kan vi overføre array til lagret procedure i SQL Server?
Kan vi overføre array til lagret procedure i SQL Server?

Video: Kan vi overføre array til lagret procedure i SQL Server?

Video: Kan vi overføre array til lagret procedure i SQL Server?
Video: Complete React Query course in an hour | TanStack Query v4 for beginners 2024, Kan
Anonim

Der er ingen støtte til array i sql server men der er flere måder du kan bestå indsamling til en gemt proc.

Udover dette, kan vi sende listen i lagret procedure?

Nej, arrays/ lister kan ikke videregives til SQL Server direkte. Følgende muligheder er tilgængelige: Bestået et kommaafgrænset liste og derefter at have en funktion i SQL opdele liste . Kommaet afgrænset liste vil højst sandsynligt blive bestået som en Nvarchar()

For det andet, hvordan sender du en kommasepareret strengværdi til en lagret procedure i SQL? Den følgende lagrede procedure henter posterne for medarbejdere, for hvilke Id'erne er videregivet ved hjælp af en streng adskilt (afgrænset) med komma.

  1. OPRET PROCEDURE GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. SOM.
  4. BEGYNDE.
  5. VÆLG Fornavn, Efternavn.
  6. FRA Medarbejdere.
  7. WHERE EmployeeId IN(
  8. VÆLG CAST(Element SOM HELTAL)

Derfor, hvorfor skulle et stort array ikke overføres til en procedure efter værdi?

Grunden til dig kan 't passere en array ved værdi er fordi der er ingen specifik måde at spore en array's størrelse sådan, at funktionskaldelseslogikken ville vide, hvor meget hukommelse der skal tildeles, og hvad der skal kopieres. Du kan bestå en klasseinstans fordi klasser har konstruktører. Arrays gør ikke.

Hvad er tabelværdisatte parametre?

EN bord - værdsat parameter er en parameter med en bord type. Bruger dette parameter , kan du sende flere rækker af data til en lagret procedure eller en parameteriseret SQL-kommando i form af en bord . Transact-SQL kan bruges til at få adgang til kolonneværdierne for bord - værdisatte parametre.

Anbefalede: