28 Temmuz 2025 Pazartesi
SQL Script yazımından önce SQL veritabanından Excel dosyasını okutmak için yapmamız gereken işlemler vardır.
İlk olarak SQL Server’da Ad Hoc Distributed Queries özelliğini açmak için aşağıdaki adımları izleyebilirsin. Bu özellik, OPENROWSET
veya OPENDATASOURCE
gibi sorgularla dış kaynaklardan (örneğin Excel dosyası) doğrudan veri çekmeni sağlar. Ad Hoc Distributed Queries Özelliğini Açmak için de aşağıdaki kodu kullanın;
-- SQL sunucuda Ad Hoc sorguları etkinleştir
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
Bu işlemlerden sonra artık OPENROWSET
sorgularını çalıştırabilirsin.
Microsoft.ACE.OLEDB.12.0 Sağlayıcısı Yüklü mü? Bunun içinde aşağıdaki sql kodu çalıştır.
EXEC sp_enum_oledb_providers;
Eğer yüklü değilse linki kullan kur; https://www.microsoft.com/en-us/download/details.aspx?id=54920
Aşağıdaki kod ile excelden verilere gözatabilirsin.
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\Downloads\stokbarkod.xls;HDR=YES;',
'SELECT * FROM [malzeme1$]');
sonuç alıyorsan, en son aşağıdaki kod ile exceldeki barkod verilerini LOGO malzeme tablosuna yazabilirsin.
UPDATE LG
SET LG.EANBARCODE = X.[ANA BİRİM BARKODU]
FROM LG_001_ITEMS LG
INNER JOIN OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\Downloads\stokbarkod.xls;HDR=YES;',
'SELECT * FROM [malzeme$]') AS X
ON LTRIM(RTRIM(LG.CODE)) = LTRIM(RTRIM(X.KODU))
WHERE X.[ANA BİRİM BARKODU] IS NOT NULL AND X.[ANA BİRİM BARKODU] <> '';