Ç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
, 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/
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.
olduğunu 'OpenDatasource' – illumi
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/
Onun çok basit. Sağ SQL Server (2008) Veritabanı tıklayın Tasks
seçip
Import Data
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.
Sql Server instance
seçti ve Excel içe için veritabanı seçtik.
Seç Copy data from one or more tables or views
ve Next
tıklayın .
Sql Server
alınmak üzere seçin.
tıklayın Next
Şimdi tıklayın Finish
Şimdi sihirbaz Sql Server
için Excel
veri ithalatı ve Close
tıklayın. İşte
Sen kullanabilmek için sp_configure kullanarak 'geçici sorgu Dağıtılmış' kullanımını etkinleştirmek için gereken tablo
OP'nin "... otomatikleştirilmesi gereken" olduğunu görün. – kfm2000
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
@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