შეგვიძლია გადავიტანოთ მასივი შენახულ პროცედურაზე SQL Server-ში?
შეგვიძლია გადავიტანოთ მასივი შენახულ პროცედურაზე SQL Server-ში?

ვიდეო: შეგვიძლია გადავიტანოთ მასივი შენახულ პროცედურაზე SQL Server-ში?

ვიდეო: შეგვიძლია გადავიტანოთ მასივი შენახულ პროცედურაზე SQL Server-ში?
ვიდეო: Pass an array into a SQL Server stored procedure - C# 2024, მაისი
Anonim

არ არსებობს მხარდაჭერა მასივი in sql სერვერი მაგრამ არსებობს რამდენიმე გზა, რომლითაც შეგიძლიათ გაიაროთ კოლექცია ა შენახული პროკ.

ამის გარდა, შეგვიძლია თუ არა სიის გადაცემა შენახულ პროცედურაში?

არა, მასივები/ სიებს შეუძლიათ პირდაპირ არ გადაეცემა SQL Server-ს. შემდეგი პარამეტრები ხელმისაწვდომია: გავლის მძიმით გამოყოფილი სია და შემდეგ აქვს ფუნქცია SQL გაყოფა სია . მძიმით შემოიფარგლება სია იქნება სავარაუდოდ გადაეცემა როგორც Nvarchar()

მეორეც, როგორ გადასცეთ მძიმით გამოყოფილი სტრიქონის მნიშვნელობა SQL-ში შენახულ პროცედურას? შემდეგი შენახული პროცედურა იღებს თანამშრომლების ჩანაწერებს, რომლებისთვისაც ID-ები გადაეცემა მძიმით გამოყოფილი (გამოყოფილი) სტრიქონის გამოყენებით.

  1. შექმენით პროცედურა GetEmployees.
  2. @EmployeeIds VARCHAR(100)
  3. ას.
  4. დასაწყისი.
  5. აირჩიეთ სახელი, გვარი.
  6. თანამშრომლებისგან.
  7. WHERE EmployeeId IN (
  8. აირჩიეთ CAST (ერთეული, როგორც მთელი)

შესაბამისად, რატომ არ უნდა გადავიდეს დიდი მასივი პროცედურაზე მნიშვნელობის მიხედვით?

მიზეზი შენ შეუძლია არ გაივლის ან მასივი მიერ ღირებულება არის იმიტომ რომ იქ არის არ არის თვალყურის დევნების კონკრეტული გზა მასივი ზომა ისეთი, რომ ფუნქციის გამოძახების ლოგიკა იქნებოდა იცოდე რამდენი მეხსიერების გამოყოფა და რა კოპირება. შენ შეუძლია გაიაროს კლასის მაგალითი, რადგან კლასები აქვს კონსტრუქტორები. მასივები არა.

რა არის ცხრილის შეფასებული პარამეტრები?

ა მაგიდა - ღირებული პარამეტრი არის პარამეტრი ერთად მაგიდა ტიპი. ამის გამოყენება პარამეტრი , შეგიძლიათ გაგზავნოთ მონაცემთა რამდენიმე სტრიქონი შენახულ პროცედურაში ან პარამეტრიზებული SQL ბრძანების სახით მაგიდა . Transact-SQL შეიძლება გამოყენებულ იქნას სვეტის მნიშვნელობებზე წვდომისთვის მაგიდა - ღირებული პარამეტრები.

გირჩევთ: