Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

अद्यतन के लिए SQL सर्वर के OUTPUT खंड का उपयोग कैसे करें

कुछ इस तरह का प्रयास करें, आपको अभी भी अस्थायी तालिका का उपयोग करना है लेकिन इसे पढ़ना बहुत बुरा नहीं है और यह काम पूरा करता है।

CREATE TABLE #tmp
(
    tmpID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
    xmlData VARCHAR(255),
    EntityId INT
)
DECLARE @t2 TABLE
(
    tmpID INT,
    EntityId INT
)

MERGE dbo.EntityMaster AS EM
USING
(
    SELECT tmpID,
        xmlData,
        EntityId
    FROM #tmp
) AS X
    ON EM.EntityId = X.EntityId
WHEN NOT MATCHED THEN
    INSERT (EntityType)
    VALUES (X.xmlData)
OUTPUT X.tmpID, INSERTED.EntityId
INTO @t2 (tmpID, EntityId);

UPDATE T
SET EntityId = T2.EntityId
FROM @t2 T2
INNER JOIN #tmp T
    ON T2.tmpID = T.tmpID

में शामिल हों

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlParameter पहले से ही किसी अन्य SqlParameterCollection द्वारा समाहित है - क्या () {} धोखा का उपयोग कर रहा है?

  2. पंक्तियों के बच्चे होने पर डेटाबेस में पंक्तियों की प्रतिलिपि बनाना

  3. SQL सर्वर में सभी अक्षम बाधाओं को वापस करें (T-SQL उदाहरण)

  4. एसक्यूएल सर्वर 2008 में डीबीमेल में कर्सर का उपयोग करना

  5. SQL सर्वर में ट्रिगर बनाएं