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