खोज…


वाक्य - विन्यास

  • DECLARE @VariableName DataType [= Value];
  • SET @VariableName = मान;

एक तालिका परिवर्तनीय घोषित करें

DECLARE @Employees TABLE
(
    EmployeeID INT NOT NULL PRIMARY KEY,
    FirstName NVARCHAR(50) NOT NULL,
    LastName NVARCHAR(50) NOT NULL,
    ManagerID INT NULL
)

जब आप एक सामान्य तालिका बनाते हैं, तो आप क्रिएट CREATE TABLE Name (Columns) सिंटैक्स का उपयोग करते हैं। तालिका चर बनाते समय, आप DECLARE @Name TABLE (Columns) सिंटैक्स का उपयोग करते हैं।

किसी SELECT स्टेटमेंट के अंदर टेबल वेरिएबल को SELECT करने के लिए, SQL सर्वर को यह चाहिए कि आप टेबल वेरिएबल को एक अन्य नाम दें, अन्यथा आपको एक त्रुटि मिलेगी:

अदिश चर को "@TableVariableName" घोषित करना चाहिए।

अर्थात

DECLARE @Table1 TABLE (Example INT)
DECLARE @Table2 TABLE (Example INT)

/*
-- the following two commented out statements would generate an error:
SELECT *
FROM @Table1
INNER JOIN @Table2 ON @Table1.Example = @Table2.Example

SELECT *
FROM @Table1
WHERE @Table1.Example = 1
*/

-- but these work fine:
SELECT *
FROM @Table1 T1
INNER JOIN @Table2 T2 ON T1.Example = T2.Example

SELECT *
FROM @Table1 Table1
WHERE Table1.Example = 1

SET का उपयोग करके एक चर को अद्यतन करना

DECLARE @VariableName INT
SET @VariableName = 1
PRINT @VariableName

1

SET का उपयोग करके, आप एक बार में केवल एक ही चर को अपडेट कर सकते हैं।

SELECT का उपयोग करके चर का अद्यतन करना

SELECT का उपयोग करके, आप एक साथ कई वेरिएबल्स को अपडेट कर सकते हैं।

DECLARE @Variable1 INT, @Variable2 VARCHAR(10)
SELECT @Variable1 = 1, @Variable2 = 'Hello'
PRINT @Variable1
PRINT @Variable2

1

नमस्कार


तालिका स्तंभ से एक चर को अद्यतन करने के लिए SELECT का उपयोग करते समय, यदि कई मान हैं, तो यह अंतिम मान का उपयोग करेगा। (सामान्य आदेश नियम लागू होते हैं - यदि कोई प्रकार नहीं दिया गया है, तो आदेश की गारंटी नहीं है।)

CREATE TABLE #Test (Example INT)
INSERT INTO #Test VALUES (1), (2)

DECLARE @Variable INT
SELECT @Variable = Example
FROM #Test
ORDER BY Example ASC

PRINT @Variable

2

SELECT TOP 1 @Variable = Example
FROM #Test
ORDER BY Example ASC

PRINT @Variable

1

यदि क्वेरी द्वारा कोई पंक्तियाँ नहीं लौटाई जाती हैं, तो चर का मान नहीं बदलेगा:

SELECT TOP 0 @Variable = Example
FROM #Test
ORDER BY Example ASC

PRINT @Variable

1

प्रारंभिक मूल्यों के साथ, एक साथ कई चर घोषित करें

DECLARE 
  @Var1 INT = 5, 
  @Var2 NVARCHAR(50) = N'Hello World', 
  @Var3 DATETIME = GETDATE()

कंपाउंड असाइनमेंट ऑपरेटर

SQL सर्वर 2008 R2

समर्थित मिश्रित ऑपरेटर:

+= जोड़ें और असाइन करें

-= घटाना और असाइन करें

*= गुणा करें और असाइन करें

/= विभाजित करें और असाइन करें

%= मोडुलो और असाइन करें

&= बिटवाइज़ और असाइन करें

^= बिटवाइज़ XOR और असाइन करें

|= बिटवाइज़ या असाइन करें

उदाहरण उपयोग:

DECLARE @test INT = 42;
SET @test += 1;
PRINT @test;    --43
SET @test -= 1;
PRINT @test;    --42
SET @test *= 2
PRINT @test;    --84
SET @test /= 2;
PRINT @test;    --42

तालिका से चयन करके चर को अद्यतन करना

आपके डेटा की संरचना के आधार पर, आप वैरिएबल बना सकते हैं जो गतिशील रूप से अपडेट होता है।

DECLARE @CurrentID int = (SELECT TOP 1 ID FROM Table ORDER BY CreateDate desc)


DECLARE @Year int = 2014
DECLARE @CurrentID int = (SELECT ID FROM Table WHERE Year = @Year)

ज्यादातर मामलों में, आप यह सुनिश्चित करना चाहेंगे कि इस पद्धति का उपयोग करते समय आपकी क्वेरी केवल एक मान लौटाए।



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