2013-05-28 14 views
37

VS2012'da bir veritabanı projesi oluşturdum. Veritabanı yapısı ekledim. Veritabanını yayınlamak ve karşılaştırmak için iyi çalışıyor.VS2012 Bazı diğer betiklere gönderme yapan dağıtım sonrası komut dosyası

Artık yayınlanmakta olan çeşitli tabloları varsayılan verilerle otomatik olarak yüklemek istiyorum.

SQL Management Studio'dan oluşturulan INSERT deyimiyle beş komut dosyası oluşturdum. Veritabanı projemde bir Script klasörüne eklendiler.

Sonra BuildAction=PostDeploy'u ayarlıyorum. Bu iyi çalışıyor. AMA nedense sadece bir betik PostDeploy ayarlanmış olması mümkündür ....

Tüm komut dosyalarını tek bir dosyaya taşıyabildiğinin farkındayım. Ama bende çok fazla şey var ve bazı düzenleri korumak için bunları ayrı dosyalar halinde gruplamak isterim.

Daha sonra bir PostDeploy.sql dosyası oluşturdum ve oradan diğer tüm komut dosyalarına başvurmaya çalıştım. dosya başlığı yön verir:

:r .\MyScript1.sql 
:r .\MyScript2.sql 
:r .\MyScript3.sql 
:r .\MyScript4.sql 
:r .\MyScript5.sql 

dosya yanlış sözdizimi üzerine yakınır:

Post-Deployment Script Template       
---------------------------------------------------------------------------- 
This file contains SQL statements that will be appended to the build script. 
Use SQLCMD syntax to include a file in the post-deployment script. 
Example:  :r .\myfile.sql 

Yani benim dosyası yazmak.

cevap

74

Visual Studio'nun yanlış sözdizimi uyarıları ile beni kandırdığı ortaya çıktı! Kurulumum tamamen geçerliydi.

Uyarılardan kaçınmak için dosyanın içinde herhangi bir yere sağ tıklayın ve "Yürütme Ayarları - SQLCMD Modu" nu seçin.

Aynı şeyi yapan SQLCMD Modu adlı bir araç çubuğu düğmesi de vardır. enter image description here

+0

Bu bir yazım hatasıdır olduğunu düşünerek Transact-SQL editörü sorunu çözer:

İşte durumda menü öğesi araç çubuğu düğmesini bulamıyorum olduğunu. Ancak bir SSDT projesi hala oluşturulmuyor veya dağıtılamıyor. – Pat

+0

Visual Studio'yu tamamen kapatmaya çalışın. SSDT çözümünüzü, bin ve obj klasörlerini, * .dbmdl, * .suo ve * .user dosyalarını silerek temizleyin ve SSDT çözümünüzü yeniden açın. Artık projenizi oluşturabilir/dağıtabilirsiniz. – TDN

+0

@Pat Çıktı penceresine bir göz atın (Hata Listesi yerine) - asıl hatayı burada görmelisiniz. Benim durumumda, dahil edilen dosyaların yollarında boşlukları vardı ve tüm yolun çift tırnak içine alınması gerekiyordu. Temizleme/yeniden başlatma gerekmez. – sellotape

İlgili konular