เราสามารถส่งอาร์เรย์ไปยังกระบวนงานที่เก็บไว้ใน SQL Server ได้หรือไม่?
เราสามารถส่งอาร์เรย์ไปยังกระบวนงานที่เก็บไว้ใน SQL Server ได้หรือไม่?

วีดีโอ: เราสามารถส่งอาร์เรย์ไปยังกระบวนงานที่เก็บไว้ใน SQL Server ได้หรือไม่?

วีดีโอ: เราสามารถส่งอาร์เรย์ไปยังกระบวนงานที่เก็บไว้ใน SQL Server ได้หรือไม่?
วีดีโอ: Send datatable as parameter to stored procedure 2024, พฤศจิกายน
Anonim

ไม่มีการสนับสนุนสำหรับ อาร์เรย์ ใน เซิร์ฟเวอร์ sql แต่มีหลายวิธีโดยที่ คุณสามารถผ่าน คอลเลกชันเพื่อ proc ที่เก็บไว้.

นอกจากนี้ เราสามารถผ่านรายการในกระบวนงานที่เก็บไว้ได้หรือไม่?

ไม่ อาร์เรย์/ รายการสามารถ ไม่ถูกส่งไปยัง SQL Server โดยตรง มีตัวเลือกดังต่อไปนี้: ผ่าน คั่นด้วยจุลภาค รายการ แล้วมีฟังก์ชั่นใน SQL แยก รายการ . คั่นด้วยจุลภาค รายการจะ เป็นไปได้มากว่าจะถูกส่งผ่านเป็น Nvarchar()

ประการที่สอง คุณจะส่งค่าสตริงที่คั่นด้วยเครื่องหมายจุลภาคไปยังกระบวนงานที่เก็บไว้ใน SQL ได้อย่างไร กระบวนงานที่เก็บไว้ต่อไปนี้รับบันทึกของพนักงานที่ส่งรหัสโดยใช้สตริงที่คั่น (คั่นด้วย) ด้วยเครื่องหมายจุลภาค

  1. สร้างขั้นตอน GetEmployees
  2. @รหัสพนักงาน VARCHAR(100)
  3. เช่น.
  4. เริ่ม.
  5. เลือกชื่อ นามสกุล
  6. จากพนักงาน
  7. ที่พนักงานId IN(
  8. เลือก CAST (รายการเป็นจำนวนเต็ม)

เหตุใดจึงไม่ควรส่งอาร์เรย์ขนาดใหญ่ไปยังโพรซีเดอร์ด้วยค่า

เหตุผลที่คุณ สามารถ 'NS ผ่าน NS อาร์เรย์ โดย ค่าคือ เพราะมี เป็น ไม่มีวิธีเฉพาะในการติดตามและ อาร์เรย์ ขนาดที่ว่าตรรกะการเรียกใช้ฟังก์ชัน จะ รู้จำนวนหน่วยความจำที่จะจัดสรรและสิ่งที่จะคัดลอก คุณ ผ่านไปได้ อินสแตนซ์ของคลาสเพราะคลาส มี ตัวสร้าง อาร์เรย์ไม่.

พารามิเตอร์ค่าตารางคืออะไร?

NS ตาราง - ค่าพารามิเตอร์ คือ พารามิเตอร์ กับ ตาราง พิมพ์. ใช้สิ่งนี้ พารามิเตอร์ คุณสามารถส่งข้อมูลหลายแถวไปยังโพรซีเดอร์ที่เก็บไว้หรือคำสั่ง SQL แบบกำหนดพารามิเตอร์ในรูปแบบของa ตาราง . Transact-SQL สามารถใช้เพื่อเข้าถึงค่าคอลัมน์ของ ตาราง - ค่าพารามิเตอร์.

แนะนำ: