Chcę, aby zapytanie wstawiało rekordy z jednej tabeli do innej tabeli w innej bazie danych, jeśli tabela docelowa już istnieje, powinno dołączyć rekordy na końcu tabeli.
sql
sql-server-2005
integration
append
naveenkumar
źródło
źródło
Jak wstawić wartości tabeli z jednego serwera / bazy danych do innej bazy danych?
1 Tworzenie serwerów połączonych {w razie potrzeby} (SQL Server 2008 R2 - 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure
2 Skonfiguruj połączony serwer do korzystania z poświadczeń a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx
- SPRAWDŹ SERWERY
SELECT * FROM sys.servers
- TESTUJ POŁĄCZONE SERWERY
WSTAW DO NOWEJ LOKALNEJ TABELI
SELECT * INTO NEWTABLE FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
LUB
WSTAWIĆ JAKO NOWE WARTOŚCI DO ZDALNEJ TABELI
INSERT INTO [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE SELECT * FROM localTABLE
WSTAWIĆ JAKO NOWE LOKALNE WARTOŚCI TABELI
INSERT INTO localTABLE SELECT * FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
źródło
Oto szybka i łatwa metoda:
CREATE TABLE database1.employees AS SELECT * FROM database2.employees;
źródło
--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. */
źródło
Możesz spróbować
Insert into your_table_in_db1 select * from your_table_in_db2@db2SID
db2SID jest identyfikatorem sid innej bazy danych. Będzie obecny w pliku tnsnames.ora
źródło
INSERT INTO remotedblink.remotedatabase.remoteschema.remotetable SELECT * FROM mytable
W relacyjnych bazach danych nie ma czegoś takiego jak „koniec tabeli”.
źródło
Jeśli obie tabele mają ten sam schemat, użyj tego zapytania: wstaw do nazwa_bazy_danych.nazwa_tabeli wybierz * z nowej_nazwa_bazy_danych.nowa_nazwa_tabeli gdzie = 'stan'
Zastąp nazwa_bazy_danych nazwą pierwszej bazy danych, a nazwa_tabeli nazwą tabeli, z której chcesz skopiować, a także nową_nazwa_bazy_danych nazwą drugiej bazy danych, do której chcesz skopiować, a nazwa_nowej_tabeli to nazwa tabeli.
źródło
Po prostu to zrób.....
(Stworzy taką samą strukturę jak z tabeli, jak z tabeli z tymi samymi danymi)
create table toDatabaseName.toTableName as select * from fromDatabaseName.fromTableName;
źródło
W przypadku programu SQL Server można użyć narzędzia Importuj dane z innej bazy danych, łatwiej jest skonfigurować mapowanie kolumn.
źródło
Przeważnie potrzebujemy tego typu zapytania w skrypcie migracji
INSERT INTO db1.table1(col1,col2,col3,col4) SELECT col5,col6,col7,col8 FROM db1.table2
W tej kolumnie zapytania liczba musi być taka sama w obu tabelach
źródło