2012-03-07 22 views
11

Varlık modelinden oluşturulan birkaç SQL betiği var ve bunların doğru sırayla çalıştırılması gerekiyor. DB'ye bazı test verileri ekleyen birkaç doldurma betiği var.Bir sql dosyası sql dosyasına nasıl eklenir? MS SQL

Şimdi doğru sırayla görsel stüdyoda olanlar senaryonun her açıp

Master.sql gibi bir şey oluşturmak için bir yol var mı ve ben kullanmak istiyorum içeride SQL (ctrl shift E) yürütmek tıklamanız gerekir bazı içerir. gibi bir şey: Görsel stüdyodan çalıştırılmak üzere bu sadece ihtiyaç

BEGIN TRANSACTION 

ImportOrInclude myDB1.sql 
ImportOrInclude myDB2.sql 
... 

COMMIT 

, bu uygulamanın kendisinin bir parçası olmayacaktır.

Bu nasıl yapılır?

Düzenleme

Orada SQL dosyasını http://msdn.microsoft.com/en-us/library/aa833281%28v=vs.80%29.aspx

alabilirsiniz SQLCMD Scripts denilen şeydir Ama benim sorum içine geçerli çözümün dizin yolunu nasıl sonra olduğunu tespit ettik: r komut

DÜZENLEME 2

Nasıl yapılacağını buldum, mükemmel değil, ama çalışıyor. Kötü olan şey, $ (SolutionDir) VS değişkenlerinden yüklenmemiş olmasıdır, bu yüzden manuel olarak ayarlamanız gerekir. Bu kod görsel stüdyoda çalıştırılmak üzere kastedilmektedir:

-- turn on in menu: Data -> Transact SQL editor -> SQL CMD mode 
-- set this to path where the .sln file is. 
:setvar SolutionDir C:\_work\projectname\ 

:!! echo $(SolutionDir)Maa.EntityModel.All\DbWEntityModel.edmx.sql 
:r $(SolutionDir)Maa.EntityModel.All\DbWEntityModel.edmx.sql 
go 

:!! echo $(SolutionDir)Maa.EntityModel.All\DblQEntityModel.edmx.sql 
:r $(SolutionDir)Maa.EntityModel.All\DbQEntityModel.edmx.sql 
go 

cevap

14

Use sqlcmd utility. ilginizi çekebilecek

Özü:

-i input_file[,input_file2...] 

SQL ifadeleri veya saklı prosedürler toplu içeren dosyayı tanımlar. Sırayla okunup işlenecek birden fazla dosya belirtilebilir. Dosya isimleri arasında boşluk kullanmayın. sqlcmd, belirtilen tüm dosyaların var olup olmadığını kontrol eder. Bir veya daha fazla dosya yoksa, sqlcmd çıkacaktır.

Örnek:

sqlcmd -dDataBaseName -E -Stcp:ServerName\instancename -imaster.sql 

Master.Sql:

:r file1.sql 
:r file2.sql 
+0

Teşekkürler, ama -i çalışmıyor. sadece: r –

+0

Elbette, sadece test ettim. –

+0

Görsel stüdyonun içerdiği sql komutunu kullanmaya çalıştım ve farklı şekilde çalışıyor –

0

kullanın Bunu yapmak için SQL Server ile gelen Business Intelligence Development Studio. Yeni bir SSIS Paketi oluşturun. Bu paketin içinde, sahip olduğunuz her dosya için Kontrol Akışı'nda birkaç Execute SQL Tasks oluşturun ve SQLSourceType değerini FileConnection olarak ayarlayın ve dosyanızı seçin.