Son zamanlarda projelerimden birini Visual Studio 2013'e güncelleştirdim. Güncelleştirme, yeni SQL proje formatıyla uyumlu hale getirmek için .dbproj'imi .sqlproj olarak değiştirdi.Visual Studio 2013 Şema Karşılaştırması neden her nesne tanımı için İzin Bildirimleri içerir ve bunları projeden farklı olarak ele alır?
Dönüştürme işleminden sonra, SQL projemi ve SQL 2008 üretim veritabanımla karşılaştırdığım bir şema çalıştırdım ve şimdi her nesnenin farklı olarak virüse karşı olduğunu düşünüyorum. Şema karşılaştırma aracından yapılan araştırma sonucunda, farkın, her nesne tanımının, her bir rol veya kullanıcıya o nesne üzerinde verilen izinlere ilişkin ifadeleri de içermesi gerçeğinde olduğu anlaşılmaktadır.
Böylece, sunucu tarafında şuna benzer:
CREATE PROC MyCoolProc
BEGIN
--some code
END
GO
GRANT EXECUTE
ON OBJECT MyCoolProc TO MyAwesomeUser
AS [Schema];
GO
ve aynı nesne için istemci tarafı şuna benzer:
CREATE PROC MyCoolProc
BEGIN
--some code
END
Bunun nedeni nedir? Ben Visual Studio 2010 kullanarak karşılaştırmak şema çalıştırdığınızda bu gerçekleşmedi. Ayrıca, SQL karşılaştırma aracı için tüm seçenekleri inceledim ve "nesneleri için izin ifadeleri yoksay" bir tane bulamadık. Biri yardım edebilir mi?
DÜZENLEME
Sadece bu Visual Studio'nun, SQL ile ilgili bir sorun olduğundan emin olmak için karşılaştırın aracı değil, SQL Server kendisi, ben yeniden ran benim evreleme ve üretim veritabanı ve aralarında Visual Studio 2010 karşılaştırmak Nesne tanımları, Visual Studio 2013'teki gibi nesne izinlerini içermez.
Bunu bulmakta sorun yaşayanlar için, VS2010'da, Karşılaştır düğmesinin sağındaki küçük Ayarlar tekerleğinde "Şema Karşılaştırma Seçenekleri" ni buldum. Ek yardım için –
@AlaaAwad +1. 2013 yılında –
, SQLSchemaCompare Dosyasının üst menüsünde de Siyah DİŞLİ –