Sql sorgu sonucundan büyük bir veri kopyalama


9

Benim sql server 2008, sorgu çalıştırdıktan sonra veri dönüşü milyonlarca çok büyük. Kopyalamayı denedim ama bir istisna sql bellek hatası veriyor. Tüm verileri nasıl kopyalayıp excel'e yapıştırabileceğimi bize bildirir misiniz?

Veri hizalı değil gibi txt dosyasına vermek istemiyorum. Bu yüzden el ile kopyalayıp excel'e yapıştırmak istiyorum. Lütfen bunun için bana çözümü bildirin


Bir açıklama noktası olarak: SSMS gelen verileri işlemeye çalıştığında "bellek yetersiz" bir istisna alıyor olabilirsiniz; bellekte uymaktan daha fazlası varsa, bu hatayı alırsınız. Bu, yetersiz bellek hatasına neden olmaz, ancak verileri kopyalayıp yapıştırmaya çalıştığınızda ortaya çıkarsa, sorun verilerin kopyalanması ve yapıştırılması için ikinci kez belleğe kopyalanmasıdır. Verilerin SMSS'ye geri döndürülmesini içeren herhangi bir cevap ( geçerli kabul edilen cevap gibi ) bundan kaçınır.
RDFozz

Yanıtlar:


17

İstediğiniz gibi kopyalayıp yapıştıramayacaksınız. Ancak birkaç seçeneğiniz var. En basit çıktıyı sağ tıklayıp CSV dosyası olarak kaydetmektir. Bu, metin verilerinizde virgül bulunmadığını varsayar.

Sonuçları Farklı Kaydet

Bir sonraki seçeneğiniz (ve muhtemelen en iyisi) dışa aktarma sihirbazını kullanmaktır. Veritabanı adınıza, ardından Görevler'e ve ardından Dışa Aktarma Sihirbazı'na sağ tıklayın

Sihirbaz nerede?

Kaynağınız sağ tıkladığınız veritabanı olacaktır.

Kaynak

Bir excel hedefi seçin.

Hedef

Aktarılacak verileri belirtmek için Sorgu yaz'ı seçin.

Bir sorgu seçin

Sorgunuza yapıştırın

Sorgunuza yapıştırın

E-tablonuzdaki sayfa adını buradan değiştirebilirsiniz.

Kaynak tabloları seçin

Sıradaki, incelemeniz gereken haritaların listesi

Haritaların listesi

Ve buradan paketi hemen çalıştırabilir veya daha sonra kullanmak / düzeltmek için SSIS paketini kaydedebilirsiniz. Dışa aktarma işleminiz ilk kez çalışmazsa ve SSIS'i biliyorsanız, paketi kaydedebilir ve sihirbazın dışında düzeltmeler yapabilirsiniz.

Kaydet ve çalıştır seçenekleri

Sonra bitir düğmesine basın ve tekrar bitirin.


2

Excel'de hedef olarak ısrar ediyorsanız, iki kolay seçenek vardır.

İlk olarak, yerel "sqlcmd.exe" veya "bcp.exe" bir sorgu çalıştırmanıza izin verir ve bunu otomatik olarak bir dosyaya çıkarır. Verilerinizde sekme olmadığı varsayıldığında, sekmeyle ayrılmış çıktı otomatik olarak Excel sütunlarına girilir. Verileriniz sekmeler içeriyorsa, başka bir sınırlayıcı seçmeniz ve içe aktarma sırasında buna göre Excel'i seçmeniz gerekir.

İkinci olarak, sorgunuzu bir SSRS (SQL Server Raporlama Servisleri) raporuna bırakın, çalıştırın, disket / kaydet simgesinin sağındaki oku tıklayın ve Excel'e aktarın. Milyonlarca satır SSRS 2012 gerektirir ve .xlsx olarak kaydedilir - maalesef SSRS 2008 R2 bile 64 binden fazla satıra izin vermez. Otomatikleştirmek için raporu planlayın.

Bu komutlar için referanslar:

Technet sqlcmd girişi

Technet BCP girişi

social.msdn sqlcmd sekmesi sınırlı forum gönderisi


0

Eğer sadece bir seferlik bir şeyse.

Sorguyu çalıştırın. Sağ alt taraftaki sonuçlar penceresinde, sol üstteki Boş Kareyi tıklayın. Sonuçları Farklı Kaydet ... Varsayılan, bir CSV'dir, dosyayı nereye dökmek istediğinizi seçin (ağ paylaşımı veya yerel).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.