10. september 2008 - 15:06
Der er
9 kommentarer og
1 løsning
Import fra Access til MSSQL
Hejsa
Jeg skal importere data fra en Access base til en SQL base. Tabellerne hedder det samme, og nogle data i Access er identiske med data i SQL. Jeg vil gerne via DTS (SQL server 2000) overføre dem der ikke eksisterer (kan ses på kundenummer). Jeg skal bruge noget SQL a'la
Select * from access.kunde not in (select * from sql.kunde)
men hvordan laves det syntaktisk korrekt?
10. september 2008 - 15:52
#2
Du kan ikke i en query hente data fra både Access og SQL Server.
Nu har jeg ikke arbejdet med DTS. Men jeg har arbejdet en del med Integration Services, som er en nyere version av DTS. Der kan du gøre det du prøver på med en Lookup task. Der må være noget tilsvarende i DTS.
10. september 2008 - 16:31
#5
To muligheder.
1. Lav din Access som Linked Server, det er et par år siden jeg har brugt denne mulighed.
2. Lav en ekstra tabel, paste dine data ind, flyt og ryd så op igen.
11. september 2008 - 13:42
#7
Hejsa
Tak for inputs - vil måske bruge dem senere, men jeg endte i går med at bruge LEI (IBM Lotus Enterprise Integrator) - Det er nemt og ligetil og jeg bruger det i mange andre sammenhænge. Håbede dog MS Access og MS SQL var bedre til at snakke sammen end de åbenbart er.
07. oktober 2008 - 11:13
#8
Nå, har rodet lidt videre med det i ACCESS(SCCust) og linket den sammen med MSSQL (dbo_SCCust1 ).
Men jeg kan ikke få min query til at virke:
INSERT INTO dbo_SCCust1 SELECT * FROM SCCust WHERE NOT EXISTS (SELECT *
FROM dbo_SCCust1 WHERE dbo_SCCust1.Cust_Num1 = SCCust.Cust_Num)
Efterfølgende vil jeg gerne noget a'la:
UPDATE dbo_SCCust1 SET XXXXX=XXXX WHERE dbo_SCCust1.Cust_Num1 = SCCust.Cust_Num
Skal jeg så have alle kolonnenavnene med? Eller er der en easy way?
07. oktober 2008 - 14:50
#9
Savr til mig selv... Lavede linked table fra Access - kunne så overføre hele tabellen til en ny i SQL.
Lavede så denne her:
INSERT INTO SCCust SELECT * FROM SCCust2 WHERE NOT EXISTS (SELECT *
FROM SCCust WHERE SCCust.Cust_Num = SCCust2.Cust_Num)
og derefter denne her:
UPDATE SCCust
SET
Cust_Name = SCCust2.Cust_Name,
Cust_Address =SCCust2.Cust_Address,
Cust_County = SCCust2.Cust_County,
Cust_Post_Code = SCCust2.Cust_Post_Code,
Cust_Memo = SCCust2.Cust_Memo,
Cust_Contact = SCCust2.Cust_Contact,
Cust_Fax = SCCust2.Cust_Fax,
Cust_Email = SCCust2.Cust_Email,
Cust_Phone = SCCust2.Cust_Phone,
Cust_Last_Inv_Amount = SCCust2.Cust_Last_Inv_Amount,
Cust_Last_Inv_Number = SCCust2.Cust_Last_Inv_Number,
Cust_Last_Update = SCCust2.Cust_Last_Update,
Cust_Analysis = SCCust2.Cust_Analysis,
Cust_On_Hold = SCCust2.Cust_On_Hold,
Cust_Disc_1 = SCCust2.Cust_Disc_1,
Cust_Disc_2 = SCCust2.Cust_Disc_2,
Cust_Disc_3 = SCCust2.Cust_Disc_3,
Cust_Credit_Limit = SCCust2.Cust_Credit_Limit,
Cust_Credit_Balance = SCCust2.Cust_Credit_Balance,
Cust_VAT_Num = SCCust2.Cust_VAT_Num,
Cust_Cust_Ref = SCCust2.Cust_Cust_Ref,
Cust_Para = SCCust2.Cust_Para,
Cust_Cur_Code = SCCust2.Cust_Cur_Code,
Cust_VAT_Code = SCCust2.Cust_VAT_Code,
Cust_Type = SCCust2.Cust_Type,
Cust_Billable = SCCust2.Cust_Billable,
Cust_Attachment = SCCust2.Cust_Attachment,
Cust_Bank_Acc_Number = SCCust2.Cust_Bank_Acc_Number,
Cust_Bank_Sort_Code = SCCust2.Cust_Bank_Sort_Code,
Cust_Bank_Address = SCCust2.Cust_Bank_Address,
Cust_VAT_Inv_Flag = SCCust2.Cust_VAT_Inv_Flag,
Cust_Bank_Name = SCCust2.Cust_Bank_Name,
Cust_Credit_Term = SCCust2.Cust_Credit_Term,
Cust_SIC = SCCust2.Cust_SIC,
Cust_Country = SCCust2.Cust_Country,
Cust_PORequired = SCCust2.Cust_PORequired,
Cust_Country_Code = SCCust2.Cust_Country_Code,
Cust_Cont_PORequired = SCCust2.Cust_Cont_PORequired,
Cust_Employ_Num = SCCust2.Cust_Employ_Num,
Cust_Unique_Ref = SCCust2.Cust_Unique_Ref,
Cust_Company_Code = SCCust2.Cust_Company_Code
FROM SCCust CROSS JOIN SCCust2
WHERE SCCust.Cust_Num = SCCust2.Cust_Num