سؤال

هل من الممكن أن تقوم UDF متعددة البيان بإرجاع نوع جدول محدد للمستخدم، بدلا من جدول محدد داخل مرمى عائده؟

لذلك بدلا من:

CREATE FUNCTION MyFunc 
(
    @p1 int, @p2 char
)
RETURNS 
@SomeVar TABLE 
(
    c1 int
)
AS

أود أن أفعل:

CREATE FUNCTION MyFunc 
(
    @p1 int, @p2 char
)
RETURNS 
@SomeVar MyTableType
AS

السبب في ذلك هو أنه داخل وظيفتي أسميه وظائف أخرى ويجب أن تمر في MyTableType UDT، حتى إذا قمت بتحديد نفس تعريف الجدول نفسه تماما في نوع جدول العودة، فسيتم رمي خطأ في اشتباك المعامل.

هل كانت مفيدة؟

المحلول

أفضل ما يمكن أن يأتي معه هو إعلان متغير جدول من النوع المحلي الخاص بك إلى الوظيفة واستخدامها في جميع أنحاء التعليمات البرمجية الخاصة بك. ثم قم بإدراج ... حدد إلى جدول المعلمة مباشرة قبل عبارة الإرجاع.

لقد تجنبت أنواع المعرفة من قبل المستخدم حتى الآن. في حين أنهم يبدووا واعدا، مع القدرة على تغيير النوع في موقع واحد بدلا من تغيير أنواع البيانات في كل مكان، فإنهم فقط يبدو أنهم يقدمون أبدا عندما يتعلق الأمر بالإنتاجية والصيانة بسبب مشكلات مثل هذه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top