.NET से कॉलिंग तालिका-मूल्यवान SQL फ़ंक्शंस

स्केलर-मूल्यवान कार्यों को .NET से निम्नानुसार कहा जा सकता है:

SqlCommand cmd = new SqlCommand("testFunction", sqlConn); //testFunction is scalar
cmd.CommandType = CommandType.StoredProcedure;  
cmd.Parameters.Add("retVal", SqlDbType.Int);
cmd.Parameters["retVal"].Direction = ParameterDirection.ReturnValue;
cmd.ExecuteScalar();
int aFunctionResult = (int)cmd.Parameters["retVal"].Value;

मुझे यह भी पता है कि तालिका-मूल्यवान कार्यों को एक समान तरीके से बुलाया जा सकता है, उदाहरण के लिए:

String query = "select * from testFunction(param1,...)"; //testFunction is table-valued
SqlCommand cmd = new SqlCommand(query, sqlConn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(tbl);

मेरा सवाल यह है कि, तालिका-मूल्यवान कार्यों को संग्रहित प्रक्रियाओं के रूप में बुलाया जा सकता है, जैसे स्केलर-मूल्यवान फ़ंक्शन कर सकते हैं? (उदाहरण के लिए, मेरे पहले कोड स्निपेट को एक तालिका-मूल्यवान फ़ंक्शन के साथ दोहराएं और रिटर्नवैल्यू पैरामीटर के माध्यम से लौटाई गई तालिका प्राप्त करें)।

0
ro fr bn
@ChuckConway शीर्षक से सी # क्यों छोड़ रहा है? सी # टैग पर विचार करना वैध था ... लेकिन वह टैग Google में दिखाने के लिए इसकी सहायता नहीं करता है।
जोड़ा लेखक Doug_Ivison, स्रोत

1 उत्तर

नहीं क्योंकि आपको उन्हें चुनने की ज़रूरत है। हालांकि आप एक संग्रहित प्रो रैपर बना सकते हैं, जो टेबल फ़ंक्शन होने के बिंदु को हरा सकता है।

0
जोड़ा
मुझे नहीं लगता कि यह वास्तव में एक टेबल-मूल्यवान कार्य करने के बिंदु को हरा देगा। टीवीएफ रखने का एक बिंदु यह है कि उनके पास कुछ सुरक्षा गारंटी है कि संग्रहित प्रक्रियाएं नहीं होती हैं। एक और मुद्दा यह है कि उनका पुन: उपयोग किया जा सकता है, जबकि प्रतिलिपि बनाने और चिपकाने के बिना संग्रहीत प्रक्रिया का पुन: उपयोग करना अधिक कठिन होता है।
जोड़ा लेखक user420667, स्रोत