मेरे पास एक संग्रहीत प्रक्रिया है जो मानों को तालिका चर में संग्रहीत करती है। मैं इन मूल्यों का चयन करता हूं और जब प्रक्रिया को बुलाया जाता है तो उन्हें वापस कर देता हूं।
मैं इन रिटर्न वैल्यूज़ को दूसरे टेबल वेरिएबल में सेट करने की कोशिश कर रहा हूं, लेकिन मैं इसका पता नहीं लगा सकता।
संग्रहीत प्रक्रिया
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()
आम तौर पर सबसे अच्छा है। अधिक