138 messaggi dal 23 settembre 2003
avrei bisogno di trasferire dei dati da una tabella A ad una tabella B;
hanno anche i nomi dei campi diversi

c'è un tool o devo usare uno script sql??

grazie
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
clockdva ha scritto:
avrei bisogno di trasferire dei dati da una tabella A ad una tabella B;
hanno anche i nomi dei campi diversi

c'è un tool o devo usare uno script sql??

grazie

se usi SQL Server (edizioni commerciali e non gratuite, come MSDE e/o SQLExpress), puoi utilizzare, a seconda della versione, i DTS o SSIS, che vengono forniti con appositi designer in tal senso..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
138 messaggi dal 23 settembre 2003
ho provato ad usare i DTS ma non mi sembra che ci sia qualcosa che possa risolvere il mio problema

se magari mi dici qualcosa in piu' mi fai un favore

grazie mille
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
clockdva ha scritto:
ho provato ad usare i DTS ma non mi sembra che ci sia qualcosa che possa risolvere il mio problema

se magari mi dici qualcosa in piu' mi fai un favore

grazie mille



consideriamo una semplicissima operazione:
abbiamo 2 tabelle, dbo.T1 = sorgente e dbo.T2 = destinazione:
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.T1 (
Id int NOT NULL PRIMARY KEY,
Cognome varchar(10) NOT NULL,
Nome varchar(10) NOT NULL,
D_Nasc datetime NOT NULL,
i int NOT NULL
);
CREATE TABLE dbo.T2 (
Id int NOT NULL PRIMARY KEY,
lName varchar(10) NOT NULL,
fName varchar(10) NOT NULL,
bDate datetime NOT NULL,
x int NOT NULL,
y char(1) NOT NULL
);
GO
INSERT INTO dbo.T1 VALUES ( 1 , 'Montanari', 'Andrea', '1965-10-30', 1 );
GO
-- non eseguire la seguente istruzione subito :D
DROP TABLE dbo.T1, dbo.T2;

dobbiamo esportare quindi T1 su T2, e la struttura e' simile ma non uguale.. i nomi delle colonne sono diversi e T2 ha una colonna in piu'...

crea un nuovo package DTS..
aggiungi 2 connessioni al server, in questo caso entrambe le connessioni puntano allo stesso server, stesso database (tempdb)..
aggiungi un Trasform Data Task
come source utilizza ad esempio una query,
SELECT Id, Cognome, Nome, D_Nasc, i, 'h' AS Expr1
FROM
T1
che puoi disegnare come ho fatto io con il Query Builder..
come vedi ho aggiunto un 'h' AS Expr1 in quanto la tabella di destinazione contiene la colonna [y] char(1) che non ammette NULL, diversamente avresti potuto ad esempio mettere direttamente NULL AS Expr1 o cose simili..

come destinazione seleziona la tabella dbo.T2

nel tab Transformations dovresti gia' vedere "linkate" le prime colonne, esclusa Source.Expr1 e Destination.y
aggiungi una ulteriore transformazione che linki appunto origine e destinazione su questi 2 elementi

in Lookups non ci serve niente, come anche per Options..

esegui il package, anche direttamente dentro il designer..

in questo modo puoi aggiungere, togliere, mappare colonne tra origine e destinazione come meglio preferisci/necessiti..
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
138 messaggi dal 23 settembre 2003
grazie mille

domani a lavoro potrò lavorare con sql server e vedere se riesco a fare quello che dici

sei stato gentilissimo, spero di risolvere senza doverti chiedere altro

ciao
Modificato da clockdva il 09 ottobre 2006 00.19 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.