मैं निम्नलिखित उपयोगकर्ता परिभाषित समारोह है:Sql सर्वर नियतात्मक उपयोगकर्ता परिभाषित समारोह
create function [dbo].[FullNameLastFirst]
(
@IsPerson bit,
@LastName nvarchar(100),
@FirstName nvarchar(100)
)
returns nvarchar(201)
as
begin
declare @Result nvarchar(201)
set @Result = (case when @IsPerson = 0 then @LastName else case when @FirstName = '' then @LastName else (@LastName + ' ' + @FirstName) end end)
return @Result
end
मैं एक गणना स्तंभ में इस समारोह का उपयोग कर कारण यह निर्धारित करने योग्य नहीं है पर एक सूचकांक नहीं बना सकते। कोई यह समझा सकता है कि यह निर्धारिती क्यों नहीं है और आखिरकार इसे निर्धारित करने के लिए कैसे संशोधित किया जाए? धन्यवाद
साथ उपयोगकर्ता निर्धारित समारोह की घोषणा करने की जरूरत है मैं अपने सूचकांक गणना स्तंभ की ओर इशारा करते बनाया। मेरे पास एक दृश्य भी है जो मेरी तालिका को संदर्भित करता है। मुझे लगता है कि मुझे उसी कॉलम पर इंडेक्स बनाने के लिए भी दृश्य पर स्कीमा बाइंडिंग निर्दिष्ट करना होगा। इसके बारे में, यदि गणना की गई कॉलम पर इंडेक्स के रूप में मेरी बेस टेबल अनावश्यक है तो व्यू पर एक और इंडेक्स बनाएं? – opaera
@ ओपेरा - हां - आपको उस कॉलम को दृश्य में इंडेक्स करने की आवश्यकता नहीं होगी। –
एक अंतिम सवाल, यदि आप कर सकते हैं। मेरे पास एक ऐसा स्पा है जो व्यू पर एक क्वेरी बनाता है (दृश्य मेरी अनुक्रमित तालिका का संदर्भ देता है)। मैं खंड से क्वेरी में इंडेक्स नाम निर्दिष्ट/निर्दिष्ट कर सकता/सकती हूं? जैसे * MyView से (MyTableIndex के साथ) चुनें ... हो सकता है कि मेरे पास कुछ फायदे हैं? – opaera