Kan vi sende array til lagret prosedyre i SQL Server?
Kan vi sende array til lagret prosedyre i SQL Server?

Video: Kan vi sende array til lagret prosedyre i SQL Server?

Video: Kan vi sende array til lagret prosedyre i SQL Server?
Video: MEGA Chia GPU Farming and Plotting Guide for Linux - Gigahorse Start to Finish - 2023 2024, November
Anonim

Det er ingen støtte for array i sql server men det er flere måter du kan passere samling til en lagret proc.

Ved siden av dette, kan vi passere listen i lagret prosedyre?

Nei, arrays/ lister kan ikke sendes direkte til SQL Server. Følgende alternativer er tilgjengelige: Passering et kommadelt liste og deretter dele en funksjon i SQL liste . Kommaet avgrenset liste vil mest sannsynlig bestått som en Nvarchar()

For det andre, hvordan sender du en kommaseparert strengverdi til en lagret prosedyre i SQL? Følgende lagrede prosedyre henter postene til ansatte som Id-ene sendes for ved hjelp av en streng atskilt (avgrenset) med komma.

  1. LAG PROSEDYRE GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. SOM.
  4. BEGYNNE.
  5. VELG Fornavn, Etternavn.
  6. FRA ansatte.
  7. WHERE EmployeeId IN(
  8. VELG CAST(Element SOM HELTAL)

Følgelig, hvorfor skulle ikke et stort utvalg sendes til en prosedyre etter verdi?

Grunnen til at du kan 't sende an array av verdien er fordi der er ingen spesifikk måte å spore en array størrelse slik at funksjonen påkallingslogikk ville vite hvor mye minne du skal tildele og hva du skal kopiere. Du kan passere en klasseforekomst fordi klasser ha konstruktører. Arrays gjør det ikke.

Hva er tabellverdier?

EN bord - verdsatt parameter er en parameter med en bord type. Bruker denne parameter , kan du sende flere rader med data til en lagret prosedyre eller en parameterisert SQL-kommando i form av en bord . Transact-SQL kan brukes til å få tilgang til kolonneverdiene til bord - verdsatte parametere.

Anbefalt: