Kas saame massiivi edastada SQL Serveris salvestatud protseduurile?
Kas saame massiivi edastada SQL Serveris salvestatud protseduurile?

Video: Kas saame massiivi edastada SQL Serveris salvestatud protseduurile?

Video: Kas saame massiivi edastada SQL Serveris salvestatud protseduurile?
Video: 🚀 AMAZON 2.0 – VEEBIPOOD nullist 6 tunniga [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, Mai
Anonim

Puudub toetus massiivi sisse sql server kuid selleks on mitu võimalust saate läbida kogumine a salvestatud proc.

Lisaks sellele, kas saame loendi salvestatud protseduuris edastada?

Ei, massiivid/ nimekirjad võivad ei edastata otse SQL Serverile. Saadaval on järgmised valikud. Mööduv komaga eraldatud nimekirja ja seejärel SQL-is funktsiooni olemasolu jagas selle nimekirja . Komaga piiritletud nimekirja tahe tõenäoliselt edastatakse kui Nvarchar()

Teiseks, kuidas edastada SQL-is salvestatud protseduurile komadega eraldatud stringi väärtus? Järgmine salvestatud protseduur hangib nende töötajate kirjed, kelle ID-d edastatakse komaga eraldatud (piiratud) stringi abil.

  1. LOO PROTSEDUURI GetTemployees.
  2. @EmployeeIds VARCHAR(100)
  3. AS.
  4. ALUSTA.
  5. VALI Eesnimi, Perekonnanimi.
  6. Töötajatelt.
  7. WHERE EmployeeId IN(
  8. SELECT CAST (üksus TÄISARVNA)

Järelikult, miks ei peaks suurt massiivi väärtuse järgi protseduurile üle andma?

Põhjus, miks sa saab mitte üle andma an massiivi kõrval väärtus on sest seal on puudub konkreetne viis jälgimiseks massiivi omad suurus selline, et funktsiooni kutsumise loogika oleks teada, kui palju mälu eraldada ja mida kopeerida. Sina saab läbi klassi eksemplar, sest klassid on konstruktorid. Massiivid mitte.

Mis on tabeli väärtusega parameetrid?

A laud - hinnatud parameeter on parameeter koos laud tüüp. Kasutades seda parameeter , saate salvestatud protseduurile või parameetritega SQL-käsule saata mitu rida andmeid laud . Transact-SQL-i saab kasutada veeru väärtustele juurdepääsuks laud - hinnatud parameetrid.

Soovitan: