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

आप कैसे जांचते हैं कि SQL सर्वर में IDENTITY_INSERT चालू या बंद पर सेट है या नहीं?

चूंकि SET IDENTITY_INSERT एक सत्र संवेदनशील है, इसे कहीं संग्रहीत किए बिना बफर स्तर में प्रबंधित किया जाता है। इसका मतलब है कि हमें IDENTITY_INSERT की जांच करने की आवश्यकता नहीं है स्थिति क्योंकि हम वर्तमान सत्र में इस कुंजी शब्द का कभी भी उपयोग नहीं करते हैं।

क्षमा करें, इसके लिए कोई सहायता नहीं है।

हालांकि बढ़िया सवाल :)

स्रोत:यहां

अपडेट करें ऐसा करने के कई तरीके हो सकते हैं, जिसे मैंने लिंक की गई साइट IMO में भी देखा है, यह उपयोगी होने के लिए बहुत अधिक प्रयास है।

if

(select max(id) from MyTable) < (select max(id) from inserted)

--Then you may be inserting a record normally

BEGIN
    set @I = 1 --SQL wants something to happen in the "IF" side of an IF/ELSE
END

ELSE --You definitely have IDENTITY_INSERT on.  Done as ELSE instead of the other way around so that if there is no inserted table, it will run anyway


BEGIN
.... Code that shouldn't run with IDENTITY_INSERT on
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मुझे कैस्केड डिलीट नियम का उपयोग करना चाहिए?

  2. SQL PARTITION BY क्लॉज का उपयोग कब और कैसे करें

  3. किसी विशिष्ट डेटाबेस के लिए अंतिम निष्पादित क्वेरी

  4. SQL सर्वर में डेटाबेस पर परिवर्तन डेटा कैप्चर (CDC) को कैसे सक्षम करें - SQL सर्वर ट्यूटोरियल

  5. डेटाबेस के लिए लेनदेन लॉग भरा हुआ है