Excelden LOGO'ya veritabanı tablo güncelleme

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] <> '';

Bunları da beğenebilirsiniz.