Belli bir sırayla çalıştırılması gereken bir dizi komut dosyası var. Tüm diğer dosyaları ve bunların doğru sırasını listeleyen bir "ana dosya" oluşturmak istiyorum. Temel olarak C ++ veya ASP / VBScript'ten bir içerme dosyası gibi.
Belli bir sırayla çalıştırılması gereken bir dizi komut dosyası var. Tüm diğer dosyaları ve bunların doğru sırasını listeleyen bir "ana dosya" oluşturmak istiyorum. Temel olarak C ++ veya ASP / VBScript'ten bir içerme dosyası gibi.
Yanıtlar:
SQLCMD kullanıyorsanız , :r FileNameayrı bir .sql dosyası eklemek için kullanabilirsiniz .
: r Dosya Adı
DosyaAdı tarafından belirtilen dosyadan ek T-SQL deyimlerini ve SQLCMD komutlarını deyim önbelleğine ayrıştırır. DosyaAdı, Visual Studio'nun başlangıç dizinine göre okunur. Bir toplu iş sonlandırıcıyla karşılaşıldıktan sonra dosya okunur ve yürütülür. Birden çok r komutu verebilirsiniz. Dosya, Araçlar, Seçenekler'de tanımlanan toplu sonlandırıcı dahil herhangi bir SQLCMD komutunu içerebilir. Diğer komutları dahil etmek için bir dağıtım öncesi veya dağıtım sonrası komut dosyasında: r komutunu kullanabilirsiniz.
Eski C ön işlemcileri anlamında kesinlikle hayır
Koşulsuz bir sırayla eklemek istediğiniz belirli yolları içeren bir dosya kümeniz varsa, sqlcmd komut satırı aracını kullanabilir veya mfredrickson ve @Marian tarafından belirtildiği gibi sqlcmdmode içinde SSMS kullanabilirsiniz.
Ancak göreli yollar veya koşullu içerikler istiyorsanız sqlcmd'yi (ya da kullanımdan kaldırılmış önceki seleflerinden biri olan isql veya osql) çağıran bazı sarıcı kullanmanız gerekir.
Şu anda bu durumda işim, gözden geçirme ve eski vbs ve hta kodunu genişletiyorum. Tamamen mutlu değilim, ama bu pragmatik bir karardır. Çalışıyor ve son kullanıcı hta GUI ile evde ve ek yazılım yüklemesine gerek yok.
Yeni bir tasarım için sqlcmd çağrılarını sarmak için WPF ve PowerShell kullanmayı düşünmeye başladım, ancak mevcut müşterilerimizle PowerShell V2 varlığını tahmin edemiyorum.
Eski zamanlarda bile, bu amaç için basit cmd yığınları yazdık, hala kullanımda.
Sanırım güncel araçlar, özellikle de iş akışlarını hedefleyen araçlar var. Ben bunlara aşina değilim.
Management Studio'daki SQLCMD modunun yanı sıra , SQLCMD yardımcı programını kullanarak tüm sql dosyalarınızı düzenlemek ve çağırmak için ana dosya olarak kullanmak üzere bir toplu iş dosyası da kullanabilirsiniz .
SQLCMD modu, Management Studio içindeki yardımcı program kullanımının bir simülasyonudur, bu nedenle modlar arasında büyük bir fark yoktur. Bir ara toplu iş yapmayı tercih ederim (artık M Studio açılmıyor ... yükleme doğru db ... vb.). Çıktı dosyaları dahil olmak üzere toplu işteki her şeyi yapılandırmayı tercih ederim.
Katılıyorum, bir T-SQL ön işlemcisine çok ihtiyaç var. C # 'da kendi saatimi geliştirdim, bu da beni bir saat sürdü. SQL komut dosyalarının yürütme sırası üzerindeki kontrolün yanı sıra, skaler UDF'lere benzeyen ve kullanımı kolay, ancak satır içi UDF'ler kadar hızlı performans gösteren makrolara sahip olmamı da sağlar.
Bernd_k'ın cevabını seviyorum . Komut dizilerinizi nasıl adlandırdığınıza bağlı olarak (sayı dahil olmak üzere), SQL Server 2008 veya üstünü çalıştırıyorsanız SQL Server PowerShell (SQLPS) kullanılabilir. SQL 2005 kullanıyor olsanız bile, 2005 için PowerShell ve SMO kullanabilirsiniz.
Yan not: SQLCMD'nin sonunda amortismana tabi tutulacak listeye alınacağına ve SQLPS, PowerShell ile değiştirileceğine inanıyorum.
Birkaç seçenek daha var.
SQLCMDbana bildirin, çünkü bulduğum şeylerin çoğu PowerShell'e başvuruyor . Ayrıca sqlcmdşema karşılaştırması dışında SSDT ile kullanılan referansı görmüyorum , ancak oluşturulan komut dosyalarını asla kullanmıyorum.