मैं एक अलग डेटाबेस में एक तालिका से दूसरी तालिका में रिकॉर्ड सम्मिलित करने के लिए एक क्वेरी चाहता हूं यदि गंतव्य तालिका पहले से मौजूद है, तो उसे तालिका के अंत में रिकॉर्ड संलग्न करना चाहिए।
मैं एक अलग डेटाबेस में एक तालिका से दूसरी तालिका में रिकॉर्ड सम्मिलित करने के लिए एक क्वेरी चाहता हूं यदि गंतव्य तालिका पहले से मौजूद है, तो उसे तालिका के अंत में रिकॉर्ड संलग्न करना चाहिए।
जवाबों:
इस बारे में कैसा है:
USE TargetDatabase
GO
INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
एक सर्वर / डेटाबेस से दूसरे डेटाबेस में टेबल वैल्यू कैसे डालें?
1 लिंक किए गए सर्वर बनाना {यदि आवश्यक हो) (SQL सर्वर 2008 R2 - 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure
2 क्रेडेंशियल का उपयोग करने के लिए लिंक किए गए सर्वर को कॉन्फ़िगर करें a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx
EXEC sp_addlinkedsrvlogin 'NAMEOFLINKEDSERVER', 'false', null, 'REMOTEUSERNAME', 'REMOTEUSERPASSWORD'
- चाक सर्वर
SELECT * FROM sys.servers
- टेस्ट लिंक्ड सर्वर
EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'
INSERT इन नई स्थानीय तालिका
SELECT * INTO NEWTABLE
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
या
रेमोट टेबल में नए मूल्य के रूप में सम्मिलित करें
INSERT
INTO [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
SELECT *
FROM localTABLE
नई स्थानीय सारणियों के रूप में सम्मिलित करें
INSERT
INTO localTABLE
SELECT *
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
--Code for same server
USE [mydb1]
GO
INSERT INTO dbo.mytable1 (
column1
,column2
,column3
,column4
)
SELECT column1
,column2
,column3
,column4
FROM [mydb2].dbo.mytable2 --WHERE any condition
/*
steps-
1- [mydb1] means our opend connection database
2- mytable1 the table in mydb1 database where we want insert record
3- mydb2 another database.
4- mytable2 is database table where u fetch record from it.
*/
--Code for different server
USE [mydb1]
SELECT *
INTO mytable1
FROM OPENDATASOURCE (
'SQLNCLI'
,'Data Source=XXX.XX.XX.XXX;Initial Catalog=mydb2;User ID=XXX;Password=XXXX'
).[mydb2].dbo.mytable2
/* steps -
1- [mydb1] means our opend connection database
2- mytable1 means create copy table in mydb1 database where we want
insert record
3- XXX.XX.XX.XXX - another server name.
4- mydb2 another server database.
5- write User id and Password of another server credential
6- mytable2 is another server table where u fetch record from it. */
यदि दोनों तालिकाओं में एक ही स्कीमा है, तो इस क्वेरी का उपयोग करें: database_name.table_name में * new_database_name.new_table_name जहाँ = = 'condition' से डालें
अपने 1 डेटाबेस के नाम के साथ डेटाबेस_नाम बदलें और जिस तालिका से आप कॉपी करना चाहते हैं, उसके नाम के साथ तालिका_नाम भी अपने अन्य डेटाबेस के नाम के साथ जहां आप कॉपी करना चाहते हैं और new_table_name तालिका का नाम है, के साथ new_database_name बदलें।
बस कर दो.....
(यह टेबल से समान डेटा के साथ टेबल के समान टेबल संरचना बनाएगा)
create table toDatabaseName.toTableName as select * from fromDatabaseName.fromTableName;
SQL सर्वर के लिए, आप किसी अन्य डेटाबेस से टूल इम्पोर्ट डेटा का उपयोग कर सकते हैं, यह कॉन्फ़िगरेशन मैपिंग कॉलम के लिए आसान है।
अधिकतर हमें माइग्रेशन स्क्रिप्ट में इस प्रकार की क्वेरी की आवश्यकता होती है
INSERT INTO db1.table1(col1,col2,col3,col4)
SELECT col5,col6,col7,col8
FROM db1.table2
इस क्वेरी में स्तंभ गणना दोनों तालिका में समान होनी चाहिए