Hedef tablo zaten mevcutsa, sorgunun bir tablodan başka bir tabloya kayıtları eklemesini istiyorum.
Hedef tablo zaten mevcutsa, sorgunun bir tablodan başka bir tabloya kayıtları eklemesini istiyorum.
Yanıtlar:
Buna ne dersin:
USE TargetDatabase
GO
INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
Bir sunucudan / veritabanından başka bir veritabanına tablo değerleri nasıl eklenir?
1 Bağlantılı Sunucular Oluşturma {gerekirse} (SQL server 2008 R2 - 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure
2 bağlantılı sunucuyu Kimlik Bilgilerini kullanacak şekilde yapılandırın a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx
EXEC sp_addlinkedsrvlogin 'NAMEOFLINKEDSERVER', 'false', null, 'REMOTEUSERNAME', 'REMOTEUSERPASSWORD'
- SUNUCULARI KONTROL EDİN
SELECT * FROM sys.servers
- TEST BAĞLANTILI SUNUCULAR
EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'
YENİ YEREL TABLO EKLEYİN
SELECT * INTO NEWTABLE
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
VEYA
UZAKTAN MASAYA YENİ DEĞERLER OLARAK EKLEYİN
INSERT
INTO [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
SELECT *
FROM localTABLE
YENİ YEREL TABLO DEĞERLERİ OLARAK EKLEYİN
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. */
Çoğunlukla bu tür bir sorguya geçiş komut dosyasında
INSERT INTO db1.table1(col1,col2,col3,col4)
SELECT col5,col6,col7,col8
FROM db1.table2
Bu sorguda sütun sayısı her iki tabloda da aynı olmalıdır
Her iki tablo da aynı şemaya sahipse, şu sorguyu kullanın: veritabanı_adı.tablosu_adı içine ekleyin, yeni_database_name.new_table_name'den * seçin, burada = 'koşul'
Veritabanı_adı yerine 1. veritabanınızın adını ve tablo_adı öğesini kopyalamak istediğiniz tablonun adıyla değiştirin, ayrıca yeni_database_name kopyalamak istediğiniz diğer veritabanınızın adıyla değiştirin ve yeni_tablo_adı tablonun adıdır.
Sadece yap.....
(Aynı verilere sahip tablodan tablo ile aynı tablo yapısını oluşturacaktır)
create table toDatabaseName.toTableName as select * from fromDatabaseName.fromTableName;
SQL Server için, Başka bir Veritabanından Verileri İçe Aktar aracını kullanabilirsiniz, eşleme sütunlarını yapılandırmak daha kolaydır.