সারণী ভেরিয়েবলের মধ্যে সঞ্চিত পদ্ধতি থেকে ফলাফলগুলি সন্নিবেশ করান


12

আমার কাছে একটি সঞ্চিত পদ্ধতি রয়েছে যা একটি সারণী ভেরিয়েবলের মান সংরক্ষণ করে। আমি এই মানগুলি নির্বাচন করি এবং পদ্ধতিটি কল করার পরে সেগুলি ফিরিয়ে আনি।

আমি এই রিটার্ন মানগুলি অন্য টেবিলের ভেরিয়েবলে সেট করার চেষ্টা করছি তবে আমি এটি বের করতে পারি না।

সংরক্ষিত নীতিমালা

ALTER PROCEDURE [dbo].[GetOrSetDomainId]
@DomainName varchar(50),
@DomainUrl varchar(50)
AS
BEGIN
    DECLARE @DomainId bigint;
    DECLARE @NumberOfRwos bigint;

    DECLARE @DomainHistory TABLE
    (
        DomainId bigint, 
        HasHistory bit,
        ServerOnline bit,
        DatabaseOnline bit, 
        ServerPerformance bigint,
        DatabasePerformance bigint, 
        SoldTickets bigint
    )


    SELECT  @NumberOfRwos =  COUNT(Id) 
    FROM DomainData
    WHERE DomainName = @DomainName OR DomainUrl = @DomainUrl

    IF(@NumberOfRwos = 0)
    BEGIN
        INSERT INTO DomainData (DomainName, DomainUrl) VALUES (@DomainName, @DomainUrl)

         SELECT @DomainId =  @@IDENTITY

         INSERT INTO @DomainHistory(DomainId,HasHistory)VALUES(@DomainId, 0)

         SELECT * FROM @DomainHistory
    END

    ELSE
    BEGIN
    ---not important here----
    END

END

কলিং কোড

আমি এই পদ্ধতিটি কল করে বলছি:

DECLARE @DomainHistory TABLE
(
    DomainId bigint, 
    HasHistory bit,
    ServerOnline bit,
    DatabaseOnline bit, 
    ServerPerformance bigint,
    DatabasePerformance bigint, 
    SoldTickets bigint
)

SET @DomainHistory = EXEC GetOrSetDomainId 'test', 'test2'
---Other alternatives:---
INSERT INTO @DomainHistory(DomainId,HasHistory)
VALUES(EXEC GetOrSetDomainId 'test', 'test2')

কিভাবে আমি এটি করতে পারব?


ঘটনাচক্রে, @@IDENTITYট্রিগাররা জড়িত থাকার সময় অপ্রত্যাশিত মান দিতে পারে। SCOPE_IDENTITY()সাধারণত সেরা। আরও
জোন অফ ট্রেডস

উত্তর:


14

কোনও টেবিলের মধ্যে ফলাফলগুলি সন্নিবেশ করানোর জন্য, আপনি কেবল ক্যোয়ারির অংশটি চান INSERT....EXEC...না VALUES

আপনার ক্ষেত্রে, এটি নিম্নলিখিতগুলির মতো দেখাবে:

INSERT INTO @DomainHistory(DomainId,HasHistory)
EXEC GetOrSetDomainId 'test', 'test2';
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.