Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Excel dosyalarından SQL Server'a veya Azure SQL Veritabanı'na veri aktarmanın çeşitli yolları vardır. Bazı yöntemler, verileri tek bir adımda doğrudan Excel dosyalarından içeri aktarmanıza olanak sağlar; diğer yöntemler, excel verilerinizi içeri aktarmadan önce metin olarak (CSV dosyası) dışarı aktarmanızı gerektirir.
Bu makale, sık kullanılan yöntemleri özetler ve daha ayrıntılı bilgi için bağlantılar sağlar. SSIS veya Azure Data Factory gibi karmaşık araç ve hizmetlerin eksiksiz bir açıklaması bu makalenin kapsamı dışındadır. İlginizi çeken çözüm hakkında daha fazla bilgi için sağlanan bağlantıları izleyin.
Yöntemlerin listesi
Excel'den verileri içeri aktarmanın çeşitli yolları vardır. Bu araçlardan bazılarını kullanmak için SQL Server Management Studio'nun (SSMS) en son sürümünü yükleyin.
Excel'den verileri içeri aktarmak için aşağıdaki araçları kullanabilirsiniz:
| Önce metne aktar (SQL Server ve Azure SQL Veritabanı) | Doğrudan Excel'den (yalnızca şirket içi SQL Server) |
|---|---|
| Düz Dosya İçeri Aktarma Sihirbazı | SQL Server İçeri ve Dışarı Aktarma Sihirbazı |
| BULK INSERT ifadesi | SQL Server Integration Services (SSIS) |
| Toplu kopyalama aracı (bcp) | OPENROWSET işlevi |
| Kopyalama Sihirbazı (Azure Data Factory) | |
| Azure Data Factory |
Excel çalışma kitabından birden çok çalışma sayfasını içeri aktarmak istiyorsanız, bu araçlardan herhangi birini genellikle her sayfa için bir kez çalıştırmanız gerekir.
Daha fazla bilgi için bkz. sınırlamaları ve Excel dosyalarına veya Excel dosyalarından veri yüklemeyle ilgili bilinen sorunlar.
İçeri ve Dışarı Aktarma Sihirbazı
SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nı kullanarak verileri doğrudan Excel dosyalarından içeri aktarın. Ayrıca ayarları daha sonra özelleştirip yeniden kullanabileceğiniz bir SQL Server Integration Services (SSIS) paketi olarak kaydedebilirsiniz.
SQL Server Management Studio'da, SQL Server Veritabanı Altyapısı örneğine bağlanın.
veritabanları genişletin.
Bir veritabanına sağ tıklayın.
Görevleröğesini seçin.
Veri İçe Aktarma veya Veri Dışa Aktarma seçin:
Bu işlem sihirbazı başlatır:
Daha fazla bilgi için aşağıdaki makalelere bakın:
- SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nı başlatma
- İçeri ve Dışarı Aktarma Sihirbazı'nın bu basit örneğini kullanmaya başlama
Integration Services (SSIS)
SQL Server Integration Services (SSIS) hakkında bilgi sahibiyseniz ve SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nı çalıştırmak istemiyorsanız, bunun yerine veri akışında Excel Kaynağını ve SQL Server Hedefini kullanan bir SSIS paketi oluşturabilirsiniz.
Daha fazla bilgi için aşağıdaki makalelere bakın:
- Excel Kaynak
- SQL Server Hedef
SSIS paketleri oluşturmayı öğrenmeye başlamak için etl paketi oluşturma öğreticisine bakın.
OPENROWSET ve bağlı sunucular
Önemli
Azure SQL Veritabanı'nda doğrudan Excel'den içeri aktaramazsınız. Önce verileri bir metin (CSV) dosyasınadışarı aktarmanız gerekir.
Aşağıdaki örneklerde JET sağlayıcısı kullanılır. Excel veri kaynaklarına bağlanan Office'e dahil edilen ACE sağlayıcısı etkileşimli istemci tarafı kullanımına yöneliktir ve bu da etkileşimli olmayan bir şekilde kullanıldığında beklenmeyen sonuçlara neden olabilir.
Dağıtılmış sorgular
Transact-SQL OPENROWSET veya OPENDATASOURCE işlevini kullanarak excel dosyalarındaki verileri doğrudan SQL Server'a aktarın. Bu kullanım, dağıtılmış sorguolarak adlandırılır.
Önemli
Azure SQL Veritabanı'nda doğrudan Excel'den içeri aktaramazsınız. Önce verileri bir metin (CSV) dosyasınadışarı aktarmanız gerekir.
Dağıtılmış sorguyu çalıştırabilmeniz için önce aşağıdaki örnekte gösterildiği gibi Ad Hoc Distributed Queries sunucu yapılandırma seçeneğini etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. sunucu yapılandırması : Geçici Dağıtılmış Sorgular.
EXECUTE sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
Aşağıdaki kod örneği, Excel OPENROWSET çalışma sayfasındaki verileri yeni bir veritabanı tablosuna aktarmak için Sheet1 kullanır.
USE ImportFromExcel;
GO
SELECT * INTO Data_dq
FROM OPENROWSET('Microsoft.JET.OLEDB.4.0',
'Excel 8.0; Database=C:\Temp\Data.xls', [Sheet1$]);
GO
OPENDATASOURCEile aynı örnek aşağıda verilmiştır.
USE ImportFromExcel;
GO
SELECT * INTO Data_dq
FROM OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Data Source=C:\Temp\Data.xls;Extended Properties=Excel 8.0')...[Sheet1$];
GO
İçeri aktarılan verileri yeni bir tablo oluşturmak yerine varolan bir tablosuna eklemek için, önceki örneklerde kullanılan INSERT INTO ... SELECT ... FROM ... söz dizimi yerine SELECT ... INTO ... FROM ... söz dizimini kullanın.
Excel verilerini içeri aktarmadan sorgulamak için standart SELECT ... FROM ... söz dizimini kullanmanız gerekir.
Dağıtılmış sorgular hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- Dağıtılmış Sorgular1
- OPENROWSET (Transact-SQL)
- OPENDATASOURCE (Transact-SQL)
1 Dağıtılmış sorgular SQL Server'da hala desteklenir, ancak bu özelliğin belgeleri güncelleştirilmez.
Bağlı sunucular
SQL Server'dan Excel dosyasına kalıcı bir bağlantıyı bağlı sunucu olarak da yapılandırabilirsiniz. Aşağıdaki örnek, var olan Excel bağlı sunucusu DataEXCELLINK çalışma sayfasındaki verileri Data_lsadlı yeni bir SQL Server veritabanı tablosuna aktarır.
USE ImportFromExcel;
GO
SELECT * INTO Data_ls FROM EXCELLINK...[Data$];
GO
Sql Server Management Studio'dan (SSMS) veya aşağıdaki örnekte gösterildiği gibi sp_addlinkedserversistem saklı yordamını çalıştırarak bağlantılı sunucu oluşturabilirsiniz.
DECLARE @RC AS INT;
DECLARE @server AS NVARCHAR (128);
DECLARE @srvproduct AS NVARCHAR (128);
DECLARE @provider AS NVARCHAR (128);
DECLARE @datasrc AS NVARCHAR (4000);
DECLARE @location AS NVARCHAR (4000);
DECLARE @provstr AS NVARCHAR (4000);
DECLARE @catalog AS NVARCHAR (128);
-- Set parameter values
SET @server = 'EXCELLINK';
SET @srvproduct = 'Excel';
SET @provider = 'Microsoft.JET.OLEDB.4.0';
SET @datasrc = 'C:\Temp\Data.xls';
SET @provstr = 'Excel 8.0';
EXECUTE
@RC = [master].[dbo].[sp_addlinkedserver]
@server,
@srvproduct,
@provider,
@datasrc,
@location,
@provstr,
@catalog;
Bağlı sunucular hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- Bağlı sunucular oluşturma (SQL Server Veritabanı Altyapısı)
- OPENQUERY (Transact-SQL)
Hem bağlı sunucular hem de dağıtılmış sorgular hakkında daha fazla örnek ve bilgi için aşağıdaki makaleye bakın:
Önkoşullar
Bu sayfada açıklanan yöntemlerin geri kalanını (BULK INSERT deyimi, bcp aracı veya Azure Data Factory) kullanmak için önce Excel verilerinizi bir metin dosyasına aktarmanız gerekir.
Excel verilerini metin olarak kaydetme
Excel'de Dosya | Farklı Kaydet seçeneğini seçin ve ardından hedef dosya türü olarak Metin (Sekmeyle ayrılmış) (*.txt) veya CSV (Virgülle ayrılmış) (*.csv) seçin.
Çalışma kitabından birden çok çalışma sayfasını dışarı aktarmak istiyorsanız, her sayfayı seçin ve bu yordamı yineleyin. Farklı Kaydet komutu yalnızca etkin sayfayı dışarı aktarır.
Bahşiş
Veri içeri aktarma araçlarıyla ilgili en iyi sonuçları elde etme amacıyla, yalnızca sütun üst bilgilerini ve veri satırlarını içeren sayfaları kaydedin. Kaydedilen veriler sayfa başlıkları, boş satırlar, notlar vb. içeriyorsa, daha sonra verileri içeri aktardığınızda beklenmeyen sonuçlar görebilirsiniz.
Düz Dosya İçe Aktarma Sihirbazı
Düz Dosya İçeri Aktarma Sihirbazı'nın sayfalarında ilerleyerek metin dosyası olarak kaydedilen verileri içeri aktarın.
Önkoşullar bölümünde daha önce açıklandığı gibi, Düz Dosya İçe Aktarma Sihirbazı'nı kullanarak içe aktarma işlemine başlamadan önce Excel verilerinizi metin olarak dışa aktarmanız gerekir.
Düz Dosyayı İçeri Aktarma Sihirbazı hakkında daha fazla bilgi için bkz. Düz Dosyayı SQL'e Aktarma Sihirbazı.
BULK INSERT komutu
BULK INSERT, SQL Server Management Studio'dan çalıştırabileceğiniz bir Transact-SQL komutudur. Aşağıdaki örnek, virgülle ayrılmış Data.csv dosyasındaki verileri var olan bir veritabanı tablosuna yükler.
daha önce Önkoşullar bölümünde açıklandığı gibi, excel verilerinizi içeri aktarmak için BULK INSERT kullanabilmek için önce metin olarak dışarı aktarmanız gerekir.
BULK INSERT Excel dosyalarını doğrudan okuyamıyor.
BULK INSERT komutuyla, yerel olarak veya Azure Blob depolamada depolanan bir CSV dosyasını içeri aktarabilirsiniz.
USE ImportFromExcel;
GO
BULK INSERT Data_bi FROM 'C:\Temp\data.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
GO
SQL Server ve Azure SQL Veritabanı hakkında daha fazla bilgi ve örnek için aşağıdaki makalelere bakın:
- VERILERI SQL Server içeri aktarmak için BULK INSERT veya OPENROWSET(BULK...) kullanın
- TOPLU INSERT (Transact-SQL)
Toplu kopyalama aracı (bcp)
bcp aracı komut isteminden çalıştırılır. Aşağıdaki örnek, virgülle ayrılmış Data.csv dosyasındaki verileri mevcut Data_bcp veritabanı tablosuna yükler.
Önkoşullar bölümünde daha önce açıklandığı gibi, Excel verilerinizi metin olarak dışarı aktardıktan sonra bcp kullanarak içeri aktarabilirsiniz. bcp aracı Excel dosyalarını doğrudan okuyamaz. Yerel depolama alanına kaydedilmiş bir test (CSV) dosyasından SQL Server veya SQL Veritabanı'na aktarmak için kullanın.
Önemli
Azure Blob depolamada depolanan bir metin (CSV) dosyası için BULK INSERT veya OPENROWSETkullanın. Örneğin, bkz. Verileri SQL Server’a aktarmak için BULK INSERT veya OPENROWSET(BULK...) kullanma.
bcp.exe ImportFromExcel..Data_bcp in "C:\Temp\data.csv" -T -c -t ,
vehakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- bcp (SQL Server) kullanarak toplu verileri içeri ve dışarı aktarma
- bcp Yardımcı Programı
- Verileri toplu dışarı veya içeri aktarmaya hazırlama
Kopyalama Sihirbazı (ADF)
Azure Data Factory (ADF) Kopyalama Sihirbazı'nın sayfalarında ilerleyerek metin dosyası olarak kaydedilen verileri içeri aktarın.
Daha önce Önkoşullar bölümünde açıklandığı gibi, Azure Data Factory'yi kullanarak içeri aktarmadan önce Excel verilerinizi metin olarak dışarı aktarmanız gerekir. Data Factory, Excel dosyalarını doğrudan okuyamaz.
Kopyalama Sihirbazı hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- Data Factory Kopya Sihirbazı
- Eğitim:Data Factory Kopyalama Sihirbazı'nı kullanarak bir Kopyalama Etkinliği ile işlem hattı oluşturma.
Azure Data Factory
Azure Data Factory hakkında bilgi sahibiyseniz ve Kopyalama Sihirbazı'nı çalıştırmak istemiyorsanız, metin dosyasından SQL Server'a veya Azure SQL Veritabanı'na kopyalayan kopyalama etkinliğine sahip bir işlem hattı oluşturun.
Daha önce Önkoşullar bölümünde açıklandığı gibi, Azure Data Factory'yi kullanarak içeri aktarmadan önce Excel verilerinizi metin olarak dışarı aktarmanız gerekir. Data Factory, Excel dosyalarını doğrudan okuyamaz.
Bu Data Factory kaynaklarını ve havuzlarını kullanma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
- Dosya sistemi
- SQL Server
- Azure SQL Veritabanı
Azure Data Factory ile veri kopyalamayı öğrenmeye başlamak için aşağıdaki makalelere bakın:
- Kopyalama Etkinliği kullanarak verileri taşıma
- Eğitici İçerik: Azure portalını kullanarak Kopyalama Etkinliği ile bir işlem hattı oluşturma
İlgili içerik
- İçeri ve Dışarı Aktarma Sihirbazı'nın bu basit örneğini kullanmaya başlama
- SQL Server Integration Services (SSIS) ile Verileri Excel'den içeri aktarma veya Excel'e aktarma
- bcp Yardımcı Programı
- Kopyalama Etkinliği kullanarak verileri taşıma