खोज…


मूल रूप से संकलित संग्रहित प्रक्रिया

मूल संकलन के साथ एक प्रक्रिया में, टी-एसक्यूएल कोड को मूल सी कोड के रूप में डीएल और निष्पादित करने के लिए संकलित किया जाता है। एक मूल संकलित संग्रहित प्रक्रिया बनाने के लिए आपको निम्न की आवश्यकता है:

  • मानक निर्माण प्रक्रिया सिंटैक्स का उपयोग करें
  • संग्रहीत कार्यविधि परिभाषा में NATIVE_COMPILATION विकल्प सेट करें
  • संग्रहीत कार्यविधि परिभाषा में SCHEMABINDING विकल्प का उपयोग करें
  • संग्रहीत कार्यविधि परिभाषा में OWNER विकल्प के रूप में परिभाषित करें

मानक BEGIN END ब्लॉक के बजाय, आपको BEGIN ATOMIC ब्लॉक का उपयोग करने की आवश्यकता है:

BEGIN ATOMIC
   WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE='us_english')
   -- T-Sql code goes here
END

उदाहरण:

CREATE PROCEDURE usp_LoadMemOptTable (@maxRows INT, @FullName NVARCHAR(200))
WITH
    NATIVE_COMPILATION, 
    SCHEMABINDING, 
    EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE='us_english')
    DECLARE @i INT = 1
    WHILE @i <= @maxRows
    BEGIN
        INSERT INTO dbo.MemOptTable3 VALUES(@i, @FullName, GETDATE())
        SET @i = @i+1
    END
END
GO

मूल रूप से संकलित स्केलर फ़ंक्शन

मूल रूप से संकलित फ़ंक्शन में कोड सी कोड में बदल जाएगा और डीएल के रूप में संकलित किया जाएगा। एक मूल संकलित स्केलर फ़ंक्शन बनाने के लिए आपको निम्न की आवश्यकता है:

  • मानक क्रिएट फंक्शन सिंटैक्स का उपयोग करें
  • फ़ंक्शन परिभाषा में NATIVE_COMPILATION विकल्प सेट करें
  • फ़ंक्शन परिभाषा में SCHEMABINDING विकल्प का उपयोग करें

मानक BEGIN END ब्लॉक के बजाय, आपको BEGIN ATOMIC ब्लॉक का उपयोग करने की आवश्यकता है:

BEGIN ATOMIC
   WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE='us_english')
   -- T-Sql code goes here
END

उदाहरण:

CREATE FUNCTION [dbo].[udfMultiply]( @v1 int, @v2 int )   
RETURNS bigint 
WITH NATIVE_COMPILATION, SCHEMABINDING  
AS   
BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English')  
  
    DECLARE @ReturnValue bigint;  
    SET @ReturnValue = @v1 * @v2;         
  
    RETURN (@ReturnValue);    
END 

-- usage sample:
SELECT dbo.udfMultiply(10, 12)

मूल इनलाइन तालिका मान फ़ंक्शन

परिणाम के रूप में मूल संकलित तालिका मान फ़ंक्शन रिटर्न तालिका। मूल रूप से संकलित फ़ंक्शन में कोड सी कोड में बदल जाएगा और डीएल के रूप में संकलित किया जाएगा। केवल इनलाइन टेबल वैल्यू फ़ंक्शंस संस्करण 2016 में समर्थित हैं। एक देशी टेबल वैल्यू फंक्शन बनाने के लिए:

  • मानक क्रिएट फंक्शन सिंटैक्स का उपयोग करें
  • फ़ंक्शन परिभाषा में NATIVE_COMPILATION विकल्प सेट करें
  • फ़ंक्शन परिभाषा में SCHEMABINDING विकल्प का उपयोग करें

मानक BEGIN END ब्लॉक के बजाय, आपको BEGIN ATOMIC ब्लॉक का उपयोग करने की आवश्यकता है:

BEGIN ATOMIC
   WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE='us_english')
   -- T-Sql code goes here
END

उदाहरण:

CREATE FUNCTION [dbo].[udft_NativeGetBusinessDoc]
(
   @RunDate VARCHAR(25)
)
RETURNS TABLE
WITH SCHEMABINDING,
     NATIVE_COMPILATION
AS
     RETURN
(
    SELECT BusinessDocNo,
           ProductCode,
           UnitID,               
           ReasonID,
           PriceID,
           RunDate,
           ReturnPercent,
           Qty,
           RewardAmount,
           ModifyDate,
           UserID
    FROM dbo.[BusinessDocDetail_11]
    WHERE RunDate >= @RunDate
);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow