2013-10-10 8 views
6

Çoklu sekmeli excel elektronik tablosunu SQL Server 2008R2'ye almak için bir işlem oluşturmalıyım. Her sekme veritabanında farklı bir tablo olacaktır. Bunun haftalık olarak yapılması gerekecek ve ithalatlar otomatikleştirilmelidir. İdeal olarak e-tabloyu bir klasöre (ya da bir takım stajyerim var) yapmak ve sql'in bu klasörde görünen bir prosedürü çalıştırmasını ve verileri bu db'deki tablolara eklemesini istiyorum. Ayrıca, ithalatı takip eden ve tarih damgalarını gösteren başka bir tabloya da sahip olmak isterim. Buraya nereden başlayacağımı hiç bilmiyorum, çünkü burası tsql olduğunda oldukça büyük bir noob'um.Excel'i SQL Server 2008'e aktarın

cevap

2

, yukarıdaki iki cevaplar size bazı fikirler gösterecektir:

Ayrıca burada da yardımcı olabilir bir csv dosyasından toplu şekilde yerleştirilmesi üzerine öğretici bir bağlantı var. Data Tools veya Business Intelligence ya da SSIS ile erişiminiz varsa, Excel çalışma kitabındaki her sayfanın her seferinde eşleştiği varsayımıyla onu otomatikleştirebilirsiniz. SSIS ile bir Veri Akışı görevi kullanacaksınız ve her sayfa istediğiniz tabloya aktarılacak. Bir sonraki hafta dosya için hazır olduğunuzda, dosyayı klasöre bırakıp SSIS paketini çalıştırın. Bununla birlikte, eğer sayfa adları değişirse, (örneğin, bir hafta kâğıtlar Kediler, Köpekler, Yağmurlar ve sonraki hafta Kükürt, Ateş, Cehennemdir), bu durumda paketin kırılmasına neden olur. Aksi takdirde, yalnızca çalışma sayfasındaki veriler değişirse, bu SSIS ile tamamen otomatikleştirilebilir.

Örnek madde: https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/

+0

Makaleyi okudum ve oldukça gergin görünüyor ightforward. Her bir sekme \ tablo için farklı bir veri akışı dalı oluşturur muyum? – d90

+0

@NicholasJDininno Birden çok sayfa ile bir Veri Akışı görevi olurdu ve bu veri akışı görevi içinde birden fazla ADO.NET veya OLE DB Bağlantı Hedefi olan birden çok Excel Kaynağı var. Seçerseniz, birkaç Veri Akışı yapabilirsiniz; Sana kalmış. – Question3CPO

5

microsoft - http://support.microsoft.com/kb/321686 tarafından yazılmış güzel bir makale var. XLImport3 içine almak istediğiniz tablodur ve veri kaynağı İçe aktarmak istediğiniz excel levha olduğunda

süreç sadece

SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 
    'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$] 

olduğunu.

+0

olduğunu 'OpenDatasource' – illumi

2

Aşağıda, csv dosyasından verilen verileri verilen bir tabloya ekleme kodu verilmiştir. Projenin tüm gereksinimlerinin ne olduğunu anlamıyorum, ama ben olsaydım her masayı farklı bir dosyaya ayırırdım ve sonra her bir tabloya veri ekleyen bir proc çalıştırırdım. Yukarıda görüldüğü gibi

BULK 
INSERT TABLE_NAME 
FROM 'c:\filename.csv' 
WITH 
(
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 

insert into import_history ('filename', 'import_date') values ('your_file_name', getdate()) 

Ayrıca ithalatı izler ve bunları zaman damgalarını tablo için, sadece her toplu ekleme sonra o tabloya bazı veriler eklemek olabilir. Eğer sadece TSQL sınırlama varsa http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

0

Onun çok basit. Sağ SQL Server (2008) Veritabanı tıklayın Tasks seçip



Import Data

enter image description here

Şimdi DataSource Microsoft Excel değiştirmek seçin. Excel dosyasının yolunu Browse düğmesini tıklatarak seçin ve Next'u tıklatın.

enter image description here





Sql Server instance seçti ve Excel içe için veritabanı seçtik.

enter image description here



Seç Copy data from one or more tables or views ve Next tıklayın .

enter image description here





Şimdi yaprak Sql Server alınmak üzere seçin.

enter image description here



tıklayın Next

enter image description here



Şimdi tıklayın Finish
enter image description here




Şimdi sihirbaz Sql Server için Excel veri ithalatı ve Close tıklayın. İşte enter image description here





Sen kullanabilmek için sp_configure kullanarak 'geçici sorgu Dağıtılmış' kullanımını etkinleştirmek için gereken tablo

enter image description here

+0

OP'nin "... otomatikleştirilmesi gereken" olduğunu görün. – kfm2000