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

SQL बल्ककॉपी के बाद प्राथमिककी आईडी वापस प्राप्त करना संभव है?

उस परिदृश्य में, मैं SqlBulkCopy . का उपयोग करूंगा एक स्टेजिंग . में सम्मिलित करने के लिए तालिका (अर्थात वह डेटा जैसा दिखता है जिसे मैं आयात करना चाहता हूं, लेकिन मुख्य लेनदेन संबंधी तालिकाओं का हिस्सा नहीं है), और फिर डीबी पर INSERT पर /SELECT डेटा को पहली वास्तविक तालिका में ले जाने के लिए।

अब मेरे पास सर्वर संस्करण के आधार पर दो विकल्प हैं; मैं दूसरा INSERT कर सकता था /SELECT दूसरी वास्तविक तालिका में, या मैं INSERT . का उपयोग कर सकता हूं /OUTPUT तालिका से पहचान पंक्तियों का उपयोग करते हुए, दूसरा सम्मिलन करने के लिए खंड।

उदाहरण के लिए:

     -- dummy schema
     CREATE TABLE TMP (data varchar(max))
     CREATE TABLE [Table1] (id int not null identity(1,1), data varchar(max))
     CREATE TABLE [Table2] (id int not null identity(1,1), id1 int not null, data varchar(max))

     -- imagine this is the SqlBulkCopy
     INSERT TMP VALUES('abc')
     INSERT TMP VALUES('def')
     INSERT TMP VALUES('ghi')

     -- now push into the real tables
     INSERT [Table1]
     OUTPUT INSERTED.id, INSERTED.data INTO [Table2](id1,data)
     SELECT data FROM TMP


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर क्वेरी में NULL को 0 से बदलना

  2. जावा से MSSQL अनुरोध के लिए उपयोगकर्ता परिभाषित तालिका प्रकार कैसे पास करें?

  3. एक स्ट्रिंग से प्रयोग करने योग्य सड़क का पता, शहर, राज्य, ज़िप पार्स करें

  4. एक एकल SQL सर्वर तालिका कितनी पंक्तियों को संग्रहीत कर सकती है?

  5. SQL सर्वर 2008 में 185k पंक्तियों के अद्यतन को गति दें?