उस परिदृश्य में, मैं 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