SQL Server 2008 R2 ile sonuçları bir CSV olarak kaydettiğimde üstbilgi yok. "Başlıklarla Kopyala" yı kopyalayıp yapıştırarak bu sorunu çözebilir veya yalnızca başlıkları alıp CSV'ye yapıştırabilirim, ancak bunu yapmanın daha iyi bir yolu var mı?
SQL Server 2008 R2 ile sonuçları bir CSV olarak kaydettiğimde üstbilgi yok. "Başlıklarla Kopyala" yı kopyalayıp yapıştırarak bu sorunu çözebilir veya yalnızca başlıkları alıp CSV'ye yapıştırabilirim, ancak bunu yapmanın daha iyi bir yolu var mı?
Yanıtlar:
Bunu görmek açıkça size bir çözüm arıyorsanız belirtilen SSMS ama o yardımcı olur durumunda bir PowerShell çözüm sağlamak düşündüm (SQLPS SSMS 2008 & 2008 R2 içinden erişilebilir).
Şöyle bir şey çalıştırmak için SQLPS (veya SQL cmdlet snapin ile normal PowerShell) kullanabilirsiniz:
Invoke-Sqlcmd -Query "sp_databases" -ServerInstance "LocalHost\R2" |
Export-Csv -Path "C:\temp\MyDatabaseSizes.csv" -NoTypeInformation
İlgileniyorsanız bu örnekle devam edebilirim.
PowerShell komut dosyası yaklaşımını beğendiyseniz, PowerShell aracılığıyla SSMS'den CSV'ye Aktaran bir komut dosyam var . Şimdiye kadar hoşunuza giden dinamik bir SQL Script'iniz olabilir, heck, hangi metni ve SSMS'yi argüman olarak betiğe geçirdiğini seçebilirsiniz.
Sadece olumsuz, geçerli pencerenin bağlantısı boyunca geçmek için akıllı bir yol bulamadım. Şu anki çözümüm, yalnızca bağlantı dizelerinde değişen PROD_DW, PROD_DB, TEST_DW gibi farklı araçlara sahip olmak ...
Sütun başlıklarını, gerçek satırlara göre birleştirilmiş tek bir satır seçimi olarak eklemek için birleştirme işlemi yapabilirsiniz, örneğin:
SELECT 'col1' AS col1...
UNION ALL
SELECT T.col1...
FROM TABLE T
Bu yaklaşımdaki en büyük acı, ikinci seçimdeki karakter veri türüne zorla dökümdür.
SSMS bir veri dışa aktarma aracı değildir. Her ikisi de veri dışa aktarma aracı olarak tasarlanmış olan ve yapmak istediğinizi yapacak olan İçe / Dışa Aktarma sihirbazını veya BCP'yi kullanın.