سؤال

أنا أبحث عن وسيلة للتحقق من صحة SQL المخطط على إنتاج DB بعد تحديث نسخة تطبيق.إذا كان التطبيق لا يطابق DB إصدار المخطط ، يجب أن تكون هناك وسيلة لتحذير المستخدم قائمة التغييرات اللازمة.

هل هناك أداة أو إطار (استخدام برمجيا) مع ميزات المدمج في أن تفعل ذلك ؟ أم أن هناك بعض خوارزمية بسيطة لتشغيل هذه المقارنة ؟

تحديث: البوابة الحمراء قوائم "من $395".أي شيء مجانا ؟ أو مضمونة أكثر من مجرد حفظ رقم الإصدار ؟

هل كانت مفيدة؟

المحلول

جرب هذا SQL.
- تشغيل ضد كل قاعدة البيانات.
- حفظ الإخراج إلى ملفات نصية.
- مهرجان دبي السينمائي الدولي الملفات النصية.

/* get list of objects in the database */
SELECT name, 
       type 
FROM  sysobjects
ORDER BY type, name

/* get list of columns in each table / parameters for each stored procedure */
SELECT so.name, 
       so.type, 
       sc.name, 
       sc.number, 
       sc.colid, 
       sc.status, 
       sc.type, 
       sc.length, 
       sc.usertype , 
       sc.scale 
FROM   sysobjects  so , 
       syscolumns  sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.name

/* get definition of each stored procedure */
SELECT so.name, 
       so.type, 
       sc.number, 
       sc.text 
FROM   sysobjects  so , 
       syscomments sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.number 

نصائح أخرى

آمل أن أتمكن من مساعدة هذه المادة أقترح قراءة:

قارن قاعدة بيانات SQL Server المخططات تلقائيا

فهو يصف كيف يمكن أتمتة SQL Server مخطط المقارنة عملية المزامنة باستخدام T-SQL, صواريخ أرض-أرض أو أداة طرف ثالث.

يمكنك أن تفعل ذلك برمجيا عن طريق البحث في قاموس البيانات (sys.الكائنات, sys.الأعمدة.... الخ) كل قواعد البيانات ومقارنتها.ومع ذلك ، هناك أيضا أدوات مثل Redgate SQL مقارنة برو أن تفعل ذلك بالنسبة لك.لقد حددت هذه كجزء من الأدوات ضمان الجودة في نظم تخزين البيانات في مناسبات قليلة الآن ، بما في ذلك واحدة أنا أعمل حاليا على.على بلدي الحالي أزعج هذا لا مشكلة على الإطلاق, كما DBA هنا بالفعل استخدامه.

المنهجية الأساسية لاستخدام هذه الأدوات هو الحفاظ على إشارة السيناريو الذي يبني قاعدة البيانات والحفاظ على هذا في التحكم في الإصدار.تشغيل البرنامج النصي إلى الصفر قاعدة البيانات ومقارنتها مع الهدف الخاص بك لمعرفة الفروق.فإنه سيتم أيضا إنشاء تصحيح البرامج النصية إذا كنت تشعر بالرغبة.

بقدر ما أعرف لا يوجد شيء مجانا أن يفعل ذلك إلا إذا كنت أشعر بأن الكتابة الخاصة بك.Redgate رخيصة بما فيه الكفاية أنه قد يكون كذلك مجانا.حتى QA أداة لإثبات أن إنتاج ديسيبل ليس في التكوين كان من المفترض أن يكون سيوفر لك سعر الشراء بعد حادثة واحدة.

يمكنك الآن استخدام بلدي SQL المشرف استوديو مجانا تشغيل مخطط مقارنة, البيانات مقارنة ومزامنة التغييرات.لم يعد يتطلب مفتاح الترخيص تحميل من هنا http://www.simego.com/Products/SQL-Admin-Studio

يعمل أيضا ضد SQL Azure.

[تحديث:نعم أنا صاحب البرنامج المذكور أعلاه ، كما هو الآن مجانا أردت مشاركتها مع المجتمع]

إذا كنت تبحث عن أداة يمكن أن المقارنة بين قواعد البيانات تظهر لك الفرق بوابة الأحمر يجعل SQL مقارنة

أنت لم تذكر أي RDMBS كنت تستخدم:إذا كانت المعلومات مخطط وجهات النظر في RDBMS ، إذا كنت يمكن أن مرجع كل المخططات من نفس المضيف ، يمكنك الاستعلام عن معلومات المخطط وجهات النظر إلى التعرف على الفروق في:-الجداول -الأعمدة -عمود أنواع -القيود (مثلالمفاتيح الأساسية, فريدة من نوعها قيود المفاتيح الخارجية ، الخ)

لقد كتبت مجموعة من الاستفسارات بالضبط هذا الغرض على SQL Server الماضية وظيفة - انها عملت بشكل جيد لتحديد الاختلافات.العديد من الاستفسارات من استخدام اليسار ينضم مع باطل للتحقق من عدم وجود المتوقع البنود, آخرون مقارنة أشياء مثل عمود أنواع أو القيد الأسماء.

انها مملة قليلا ، ولكن من الممكن.

لقد وجدت هذه الصغيرة أداة مجانية الذي يناسب معظم احتياجات بلدي.http://www.wintestgear.com/products/MSSQLSchemaDiff/MSSQLSchemaDiff.html

إنها أساسية جدا ولكن يظهر لك المخطط الاختلافات في اثنين من قواعد البيانات.أنها لا تملك أي الأشياء الفاخرة مثل السيارات البرامج النصية التي تم إنشاؤها لجعل الفروق في الذهاب بعيدا في انها لا تقارن أي بيانات.

إنها صغيرة ، أداة مجانية الذي يظهر لك مخطط الاختلافات :)

جعل الجدول تخزين رقم الإصدار في هناك.فقط تأكد من تحديث إذا لزم الأمر.

CREATE TABLE version (
    version VARCHAR(255) NOT NULL
)
INSERT INTO version VALUES ('v1.0');

ثم يمكنك التحقق من رقم الإصدار المخزنة في قاعدة بيانات تطابق رمز التطبيق خلال التطبيق الخاص بك الإعداد أو في أي مكان مناسب.

التي RDBMS هذا, و كيف المعقدة المحتملة التغييرات ؟

ربما هذا هو مجرد مسألة مقارنة الصف التهم مؤشر التهم لكل جدول -- إذا كان لديك الزناد الإجراء المخزن الإصدارات يدعو للقلق أيضا إذا كنت بحاجة إلى شيء أكثر الصناعي

محاولة dbForge Data Compare for SQL Server.فإنه يمكن قارن ومزامنة أي قواعد البيانات حتى الكبيرة جدا.سريعة وسهلة دائما يسلم النتيجة الصحيحة.في محاولة على قاعدة البيانات الخاصة بك و التعليق على المنتج.

يمكننا أن ننصح موثوق SQL مقارنة الأداة التي توفر 3 مرة أسرع مقارنة و مزامنة بيانات الجدول في قواعد بيانات SQL Server.إنه dbForge Data Compare for SQL Server.

المزايا الرئيسية:

  • أسرع مقارنة مزامنة قواعد البيانات الكبيرة
  • دعم الأصلي SQL Server النسخ الاحتياطي
  • العرف خرائط الجداول والأعمدة المخططات
  • خيارات متعددة لضبط المقارنة الخاصة بك و التزامن
  • توليد المقارنة و تزامن التقارير

بالإضافة إلى مجانية لمدة 30 يوما محاكمة خالية من المخاطر شراء مع المال لمدة 30 يوما ضمان عودة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top