আমার কাছে একটি সঞ্চিত পদ্ধতি রয়েছে যা একটি সারণী ভেরিয়েবলের মান সংরক্ষণ করে। আমি এই মানগুলি নির্বাচন করি এবং পদ্ধতিটি কল করার পরে সেগুলি ফিরিয়ে আনি।
আমি এই রিটার্ন মানগুলি অন্য টেবিলের ভেরিয়েবলে সেট করার চেষ্টা করছি তবে আমি এটি বের করতে পারি না।
সংরক্ষিত নীতিমালা
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()
সাধারণত সেরা। আরও