2013-07-12 17 views
6

Yasal Uyarı: SSDT'nin daha eski bir sürümüne atıfta bulunan benzer bir question vardır. Seçilen cevap, projemde olmayan ayarları referanslar. Yeni proje biçiminde doğru ayarlanmış eşdeğer ayarlara sahip olduğuma inanıyorum.ALTER DATABASE deyimimi SSDT yayınlama komut dosyasımdan nasıl kaldırırım?

SSDT'ye yeniyim ve veritabanımı istenmeyen şekillerde değiştirmeme konusunda henüz güvenmiyorum. Ayarları istediğim şekilde aldıktan sonra, veritabanına ne yapmaya çalışacağını görmek için bir yayın yapmayı denedim. Hata ayıklama ayarları altında bu kontrolsüz

ALTER DATABASE [$(DatabaseName)] 
     SET ANSI_NULLS ON, 
      ANSI_PADDING ON, 
      ANSI_WARNINGS ON, 
      ARITHABORT ON, 
      CONCAT_NULL_YIELDS_NULL ON, 
      CURSOR_DEFAULT LOCAL, 
      RECOVERY FULL, 
      AUTO_UPDATE_STATISTICS ON 
     WITH ROLLBACK IMMEDIATE; 

    ALTER DATABASE [$(DatabaseName)] 
     SET PAGE_VERIFY NONE 
     WITH ROLLBACK IMMEDIATE; 

    EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] 
     SET TRUSTWORTHY OFF 
     WITH ROLLBACK IMMEDIATE'; 

Ben veritabanı projesi hiç benim veritabanı ayarlarını değiştirmek istemiyorum, bu yüzden var: Ben yayınlama komut dosyasına eklenen bu ifadeleri alıyorum

Deploy database properties check box

Ayrıca burada gelişmiş altında yayınlamak ayarları: Proje ayarları altında

Advanced publish settings screenshot

| Veritabanı Ayarları her şeyi benim veritabanını eşleştirmek yapılan:

Database settings screenshot Database settings from Management Studio

nasıl engelleyebilirim?

+0

En son SSDT bitlerinde misiniz? Aynı ayarlara sahibim ve sürüm komut dosyalarında ALTER DATABASE komutları yok. Http://blogs.msdn.com/b/ssdt/ adresini ziyaret edin ve muhtemelen en azından Aralık 2012 veya Mart 2013 tarihlerinde bulunun. (Haziran sadece çıktı. Bu nedenle dikkatli olmak isteyebilirsiniz.) –

+0

Haziran SSDT'yi kullanıyorum. –

+2

Aynısını kullanarak. DB seçeneklerim aynıysa, sadece komut dosyası almazlar. Yayınla XML kodunda "yerel" yayınımın "True" özelliğini kullanmasına rağmen " False" var. Seçenekler aynı olduğunda, onlar için iyiyiz. Açmak için yayın dosyasına sağ tıklarsanız XML'yi görebilirsiniz. Belki ayarları kontrol etmek ve manuel olarak ayarlamak için bu XML'in içeriklerini kontrol edin. Belki bir kez koşmasına izin verin ve gelecekteki çalışmalara devam edip etmediğini görün. –

cevap

3

Düşüncesi için bir besindir. Çözümüm, tüm ayarların mükemmel bir eşleşme olduğunu dikkatlice doğrulamaktı. Bazı ayarların aynı olmasını istediğimden, bu ayarların artık oluşturulan değişiklik dosyasında olmayacağını varsaymıştım. Ancak durum böyle değil. Herhangi bir veritabanı ayarı farklılığı varsa, yanlış değeri ile aynı ARE olan diğerlerini içerecek gibi görünüyor.

Kaydettiğim ayarlar, Veritabanı Ayarları iletişim kutusunun 2. ve 3. sekmelerinde (Operasyonel ve Muhtelif) bulunuyordu. Miscellaneous settings

+0

İlginç ... Tekrar üretmeye çalışacağım –

-2

SSDT kullanmadım. Ancak, komut dosyalarını oluşturmak için SSMS kullandığımda, genellikle yürütmek istemediğim kodu silerim. DB şemasında değişiklikler yaptığımda, bunun komut dosyası ve kaynak denetiminde olmasını istiyorum. Bu sayede kurulumlarım/geçişlerim tekrarlanabilir ve test edilebilir. SSDT'yi kullanmayı planladığınızdan emin değilsiniz, ancak bu,

+0

Amacım, bir veritabanı projesinin bir parçası olarak SQL kodunun kaynak denetimi için işaretlendiğinde, TFS oluşturma sunucumuzun veritabanı değişikliklerini otomatik olarak dağıtmasını sağlamaktır. Muhtemelen tarif ettiğiniz şeyi yapacak bir dağıtım öncesi betiği ekleyebilirim, ancak umarım bir hack olmadan yönetebilirim. –

9

Operational settings

yayınlama profilini kaydetmek için önce işaretlenmemiş olması gereken iki onay kutularını vardır. Olun özelliklerini yansıtmak gitmek emin - "veritabanı özelliklerini dağıtma">, hata ayıklama ve işaretini kaldırın

Click here to view screenshot

sonra sağ veritabanı projesi tıklayın - "veritabanı özelliklerini dağıtma" işaretini kaldırın ve ardından "Gelişmiş" tıklayın yayınlayamaz>

Click here to view screenshot

Tamam'ı, Kaydet Profili tıklatın ve şu andan itibaren, her zaman kullanarak oluşturulan komut dağıtmak yalnızca istediğiniz değişiklikleri içerecek yeni oluşturduğunuz profile yayımlamak.

VS 2013'ü 20 Nisan 2016 itibariyle en son SSDT ile kullanıyorum.