الإرشادات التفصيلية: يطبق قاعدة بيانات إعادة بناء التعليمات البرمجية أساليب
باستخدام إعادة بناء التعليمات البرمجية في Visual Studio Premiumأو Visual Studio Ultimate، يمكنك تقليل عدد tكـks المتكررة وعرضه للأخطاء التي يجب تنفيذها كـ تصميم وتحديث المخطط databكـe. على سبيل المثال، يمكنك استخدم إعادة بناء التعليمات البرمجية تحديث المراجع إلى كائن قاعدة بيانات إذا تحتم تغيير اسمها أو يجب تحريك الكائن إلى مخطط مختلف. في حالة القيام بهذه الطريقة، يمكنك زيادة السرعة ودقة التغييرات الدورية إلى تصميم قاعدة بيانات.
توضح هذه معاينة سيناريو المثالي في تطوير قاعدة بيانات. إلى إضافة قدرات إلى لقاعدة بيانات موجودة، يجب إجراء التنفيذ الأولى ثم قم بمراجعة مع عضو آخر في الفريق. أثناء المراجعة، سوف تتعرف العديد من المشكلات التي يجب أن تعالج قبل فحص في التغييرات. سيتم استخدام مجموعة متنوعة من التقنيات refacإلىring ثم إلى تغيير المخطط.
توضح هذه الإرشادات التفصيلية المهام التالية:
استيراد مخطط قاعدة بيانات الخاصة بك
تطبيق قاعدة بيانات نموذجية مهمة التطوير
تصحيح خطأ ترميز
يتم الآن إكمال مهمة التطوير
عنونة ملاحظات المراجعة تعليمات برمجية
المتطلبات الأساسية
لاستكمال الإرشادات التفصيلية هذه، تحتاج لما يلي:
Visual Studio Premium أو Visual Studio Ultimate
القراءة-فقط الوصول إلى الخادم قاعدة بيانات الذي قاعدة البيانات AdventureWorks2008 هو مثبتة.
استيراد مخطط قاعدة بيانات الخاصة بك
قبل تغيير مخطط في بيئة فريق، فعادة ما تقوم بالتحقق مشروع موجود خارج النظام التحكم بالإصدار الخاص بك. تقوم بإنشاء مشروع قاعدة بيانات لهذه معاينة، و استيراد المخطط من قاعدة بيانات نموذج AdventureWorks2008.
إلى إنشاء مشروع قاعدة بيانات
من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).
يظهر مربع الحوار مشروع جديد.
تحت القوالب المثبتة، توسيع العقدة قاعدة بيانات، و انقر العقدة SQL الخادم.
في قائمة القوالب، انقر فوق مشروع قاعدة بيانات في SQL الخادم 2008.
في اسم ، نوع RefactorAdventureWorks، انقر فوق موافق .
حل هو المنشأ الذي يحتوي على قاعدة بيانات فارغ للمشروع، الذي هو المسمى RefactorAdventureWorks، كالمشروع اختبار (يعرف أيضا باسم الحماية).
التالي، استيراد المخطط من مثيل قاعدة بيانات AdventureWorks المنشورة.
إلى استيراد قاعدة بيانات AdventureWorks
في مستكشف الحل أو عرض مخطط، انقر فوق من RefactorAdventureWorks.
في قائمة مشروع ، انقر فوق من و إعدادات "استيراد الكائنات قاعدة بيانات".
ملاحظة
النقر بالزر الأيمن أيضا فوق من RefactorAdventureWorks و ثم انقر فوق من و إعدادات "استيراد الكائنات قاعدة بيانات".
يظهر معالج استيراد قاعدة بيانات.
في القائمة اتصال قاعدة بيانات المصدر، انقر فوق الاتصال الذي يتوافق مع إلى قاعدة بيانات AdventureWorks.
هام
إذا كان لديك لم يتم متصل إلى قاعدة بيانات، يجب أولاً النقر فوق اتصال جديد لإنشاء اتصال به. لمزيد من المعلومات، راجع كيفية القيام بما يلي: Create a Database Connection.
انقر فوق يبدأ ، ومن ثم انقر فوق إنهاء عندما تم استيرادها الكائنات والإعدادات.
كما يتم استيراد المخطط، المشروع بالعناصر التي تتوافق مع إلى تظهر الكائنات في قاعدة البيانات ضمن مشروع قاعدة البيانات في مستكشف الحل و عرض مخطط .
ملاحظة
على الرغم من أن اتصالك إلى قاعدة البيانات إلى استيراد المخطط، الآن قطع الاتصال والعمل دون اتصال.
بعد ذلك، سيتم تنفيذ مهمة نموذجية في قاعدة بيانات التطوير، إضافة تعليمة برمجية إلى مشروع قاعدة بيانات.
تنفيذ مهمة تطوير قاعدة بيانات نموذجية
لهذه مهمة، قد يتم مطالبتك إلى تنفيذ دعم إلى مقطع صوتي hisإلىry غياب لكل موظف. كجزء من هذه مهمة، يجب إنشاء الكائنات التالية:
جدول تتبع تاريخ البداية والنهاية لكل غياب ونوع الغياب (إجازة مرضية وقت، jury duty، عطلة عائم، unpaid الوقت المستقطع أو bereavement المغادرة). تقوم بإضافة جدول للمخطط الشخص فيما بعد في هذه معاينة. بيانات الموجودة في الجدول على القيود التالية:
لن يتم غياباته طويل المزيد خمسة أيام. (يتم مقسمة غياباته أطول في إدخالات متعددة).
يكون غياباته صالح التاريخ النطاقات.
الجدول هو المتعلقة بجدول الموظفين "معرف الموظف".
طريقة عرض تعرض محفوظات غياب كامل لكل موظف.
إجراء مخزّن الذي يسجل غياب وتحديث الساعات إجازة للموظف الذي في حالة غياب اكتب هو عطلة.
إلى تحضير إلى بإضافة تعليمات برمجية
في قائمة عرض ، انقر فوق عرض مخطط قاعدة بيانات.
في عرض مخطط ، توسيع العقدة RefactorAdventureWorks.
إذا عرض مخطط هو تم فرزها حسب نوع الكائنات، انقر فوق تغيير كائن تجميع تشغيل شريط الأدوات.
ملاحظة
طريقة عرض المخطط هو تم فرزها حسب نوع الكائنات إذا كان يحتوي على عقد يطلق على الجداول و الوجهات. إذا كان يحتوي عرض مخطط على عقدة ما يسمى رسوم تخطيطية، يمكنك الاستمرار في مع إجراء التالي.
بعد إضافة الجدول AbsenceHisإلىry إلى مشروع قاعدة بيانات.
إلى إضافة الجدول AbsenceHisإلىry
في طريقة عرض المخطط، قم بتوسيع العقدة رسوم تخطيطية التوسيع في منخفض-عقدة الشخص وقم بتوسيع في منخفض-عقدة الجداول.
يمين-انقر فوق في منخفض-عقدة جداول ، وأشر إلى إضافة، وانقر فوق الجدول.
يظهر مربع الحوار Add New Item.
في الاسم، نوع AbsenceHistory، انقر فوق إضافة.
Transact-SQLيفتح محرر، ويعرض تعريف AbsenceHistory جدول.
في Transact-SQLمحرر، قم باستبدال تعريف الجدول الموجود بالتعليمة البرمجية التالية:
CREATE TABLE [Person].[AbsenceHistory] ( [EmployeeID] INT NOT NULL, [BeginDate] DateTime NOT NULL, [EndDate] DateTime NOT NULL, [AbsenceType] NCHAR(1) NOT NULL );
تشغيل انقر قائمة ملف حفظ Persتشغيل.AbsenceHistory.جدول.sql.
بعد إضافة قيد تحقق من صحة إلى الجدول AbsenceHisإلىry.
إلى إضافة قيد التحقق من الصحة إلى الجدول
في عرض مخطط ، توسيع العقدة AbsenceHistory.
يمين-انقر فوق العقدة قيود الإشارة إلى إضافةوانقر فوق قيد فحص.
يظهر مربع الحوار Add New Item.
في الاسم، نوع CK_AbsenceHistory_ValidDates، انقر فوق إضافة.
Transact-SQLيفتح محرر، ويعرض تعريف للقيد.
في Transact-SQLمحرر، قم باستبدال التعريف الموجود قيد بالتعليمة البرمجية التالية:
ALTER TABLE [Person].[AbsenceHistory] ADD CONSTRAINT [CK_AbsenceHistory_ValidDates] CHECK (EndDate >= BeginDate AND DateDiff(day, EndDate, BeginDate) <= 5) go EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = 'Check constraint [EndDate]>= [BeginDate]', @level0type = N'SCHEMA', @level0name = N'Person', @level1type = N'TABLE', @level1name = N'AbsenceHistory', @level2type = N'CONSTRAINT', @level2name = N'CK_AbsenceHistory_ValidDates';
تعرف هذه تعليمات برمجية قيد تشغيل الجدول الذي يقوم بالتأكد من أن تاريخ الانتهاء بعد تاريخ البدء و دلتا بينهما لا يزيد عن خمسة أيام.
تشغيل انقر قائمة ملف حفظ Persتشغيل.AbsenceHistory.CK_AbsenceHistory_ValidDates.chkcتشغيلst.sql.
بعد إضافة المفتاح خارجي إلى الجدول AbsenceHistory.
إلى إضافة تعريف المفتاح الخارجي
في عرض مخطط، انقر نقراً مزدوجاً فوق العقدة مفاتيح الإشارة إلى إضافةوانقر فوق مفتاح خارجي .
يظهر مربع الحوار Add New Item.
في الاسم، اكتب FK_AbsenceHistory_Employee_EmployeeID، و انقر فوق إضافة.
Transact-SQLيفتح محرر، ويعرض التعريف مفتاح خارجي.
في Transact-SQL، باستبدال تعريف المفتاح الخارجي الموجود بما يلي تعليمات برمجية:
ALTER TABLE [Person].[AbsenceHistory] ADD CONSTRAINT [FK_AbsenceHistory_Employee_EmployeeID] FOREIGN KEY ([EmployeeID]) REFERENCES [HumanResources].[Employee] ([BusinessEntityID]) ON DELETE NO ACTION ON UPDATE NO ACTION; GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = 'Foreign key constraint referencing Employee.BusinessEntityID.', @level0type = N'SCHEMA', @level0name = N'Person', @level1type = N'TABLE', @level1name = N'AbsenceHistory', @level2type = N'CONSTRAINT', @level2name = N'FK_AbsenceHistory_Employee_EmployeeID';
هذه التعليمة البرمجية بتعريف علاقة المفتاح خارجي بين "معرف الموظف" في جدول AbsenceHistory و BusinessEntityID في [HumanResources]. [الموظف] الجدول.
في قائمة ملف ، انقر فوق حفظ Person.AbsenceHistory.FK_AbsenceHistory_Employee_EmployeeID.fkey.sql.
عند هذه النقطة، يمكنك تحقيق التي جدول يجب أن تكون في مخطط HumanResources بدلاً من ذلك. في إجراء التالي، يمكنك تصحيح هذا الخطأ.
تصحيح خطأ ترميز
لأن مسبقاً تعريف القيود والمفاتيح الخارجية، قم بنقل جدول ومرتبطة به الكائنات إلى مخطط آخر هو عادة تستهلك قدرا كبيرا من الوقت. يمكنك استخدام قاعدة بيانات refacإلىring إلى بسرعة وسهولة تحريك الجدول وكائناته المرتبطة إلى المخطط الصحيح قبل المتابعة.
لنقل الجدول AbsenceHistory HumanResources مخطط
في عرض مخطط، انقر نقراً مزدوجاً فوق الجدول AbsenceHistory، وأشر إلى إعادة بناء التعليمات البرمجية، وانقر فوق تحريك إلى مخطط.
يظهر صندوق الحوار تحريك المخطط.
في القائمة مخطط جديد ، انقر فوق من HumanResources.
تحقق من أن خانة اختيار معاينة التغييرات هو محددة، ثم انقر فوق موافق .
يظهر صندوق الحوار معاينة التغييرات. يمكنك مراجعة التغييرات قبل تطبيقها إلى مشروع قاعدة بيانات الخاصة بك.
انقر فوق تطبيق.
يتم تطبيق التغييرات refacإلىring إلى مشروع قاعدة بيانات الخاصة بك. نقل الجدول AbsenceHisإلىry من شخص المخطط إلى مخطط HumanResources، إلى gether مع الكائنات المرتبطة بكافة.
في عرض مخطط، توسيع عقدة مخطط HumanResources ، وبعد ذلك توسيع العقدة جداول.
يظهر هذا الجدول AbsenceHistory في الصحيح مخطط.
ملاحظة
عندما تقوم بنقل الكائنات إلى الصحيح مخطط، عدم تغيير أسماء الملفات التي يتم تعريف الكائنات. إذا كنت تريد إلى تحديث أسماء الملفات، يجب إعادة تسميتها في من مستكشف الحل.
التالي، سيقوم بإكمال الخطوات المتبقية للمهمة "تطوير.
يتم الآن إكمال مهمة تطوير
والآن بعد أن الذي تم تصحيحه المخطط الخاص جدول، يجب إنشاء الكائنات التالية:
عرض يظهر لكل موظف محفوظات غياب كاملة.
إجراء مخزّن الذي يسجل غياب وتحديث الساعات إجازة للموظف الذي في حالة غياب اكتب هو عطلة.
إلى إضافة طريقة العرض vEmployeeAbsenceHisإلىry
في عرض مخطط ، في المخطط HumanResources، توسيع طرق العرض عقدة.
يمين-انقر فوق العقدة طرق العرض ، وأشر إلى إضافة، وانقر فوق عرض.
يظهر مربع الحوار Add New Item.
في الاسم، نوع vEmployeeAbsenceHistory ، انقر فوق إضافة.
Transact-SQLيفتح محرر، ويعرض تعريف عرض.
في Transact-SQLمحرر، قم باستبدال تعريف عرض موجود بالتعليمة البرمجية التالية:
CREATE VIEW [HumanResources].[vEmployeeAbsenceHistory] AS SELECT a.* ,c.[Title] ,c.[FirstName] ,c.[MiddleName] ,c.[LastName] ,c.[Suffix] FROM [HumanResources].[Employee] e INNER JOIN [Person].[Person] c ON c.[BusinessEntityID] = e.[BusinessEntityID] INNER JOIN [AbsenceHistory] a ON e.[BusinessEntityID] = a.[EmployeeID] ; GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = 'Returns employee name and absence history.', @level0type = N'SCHEMA', @level0name = N'HumanResources', @level1type = N'VIEW', @level1name = N'vEmployeeAbsenceHistory';
وهذا تعليمات برمجية تعريف عرض التي تقوم بإرجاع بيانات من مجموعة من الجداول بين الموظفين جهة الاتصال AbsenceHistory.
تشغيل انقر قائمة ملف حفظ HumanResources.vEmployeeAbsenceHistory.عرض.sql.
بعد ذلك يمكنك إضافة إجراء مخزّن.
لإضافة uspRecordAbsence إجراء مخزّن
في عرض مخطط ، في المخطط HumanResources، توسيع عقده قابلية البرمجة ، وثم توسيع عقده إجراءات مخزنة.
انقر نقراً مزدوجاً فوق العقدة إجراءات مخزنة ، وأشر إلى إضافة، و انقر فوق إجراء مخزّن.
يظهر مربع الحوار Add New Item.
في الاسم، اكتب uspRecordAbsence ، و انقر إضافة .
Transact-SQLيفتح محرر، ويعرض التعريف إجراء مخزّن.
في Transact-SQL، قم باستبدال التعريف الموجود إجراء مخزّن بالتعليمة البرمجية التالية:
CREATE PROCEDURE [HumanResources].[uspRecordAbsence] @EmployeeID INT, @AbsenceType NCHAR(1), @StartDate DATETIME, @EndDate DATETIME AS BEGIN BEGIN TRANSACTION INSERT INTO [AbsenceHistory] (EmployeeID, BeginDate, EndDate, AbsenceType) VALUES(@EmployeeID, @StartDate, @EndDate, @AbsenceType) IF (@AbsenceType = 'V') BEGIN UPDATE [Employee] SET [VacationHours] = [VacationHours] - DateDiff(day, @StartDate, @EndDate) WHERE [BusinessEntityID] = @EmployeeID END COMMIT TRANSACTION END;
Th هو رمز تعريف إجراء مخزّن الذي يقوم بإضافة صف في الجدول AbsenceHهوtory وقم بتحديث الحقل VacationHours في جدول الموظفين إذا نوع غياب هو 'V'.
تشغيل انقر قائمة ملف حفظ dbo.uspRecordAbsence.proc.sql.
في إجراء التالي، توجيه الملاحظات التي تتلقاها في تعليمات برمجية المراجعة.
عنونة ملاحظات استعراض تعليمات برمجية
مراجعة تعليمات برمجية مع عضو آخر في الفريق، تلقيت ملاحظات حول عدة أفضل الممارسات. تمت مطالبتك إلى تجنب استخدام تحديد *، لأن فإنها تعطي تحذيرات إذا قمت بتشغيل تحليل تعليمات برمجية ثابتة في تعليمات برمجية لقاعدة بيانات الخاصة بك. بالإضافة إلى ذلك، يتم مطالبتك بالتأهيل الكامل أسماء التي استخدمتها في إجراء المخزن. وأخيراً، تمت مطالبتك إلى إعادة تسمية عمود BeginDate في AbsenceHisإلىry الجدول إلى البدء.
ملاحظة
ترميز stوards و تختلف متطلبات بين فرق العمل. يجب يطبق مقاييس ترميز للمؤسسة إلى Transact-SQLالرموز التي يمكنك الكتابة. يتم توضيح هذه معاينة مشكلتين. بالإضافة إلى ذلك، ستقوم عادة يطبق هذه التقنيات الجديدة الجميع تعليمات برمجية (على سبيل المثال، مؤهلة تماما لكافة الأسماء الموجودة في تعليمات برمجية الجديدة)، وليس فقط على كائن قاعدة بيانات واحدة.
مرة أخرى، يمكن أن تكون هذه الأنواع من التغييرات لعرضه للخطأ ومملة إلى تطبيق. يمكنك استخدام قاعدة بيانات refacإلىring إلى بسرعة وبسهولة تحديث تعليمات برمجية في قاعدة بيانات واختبار تعليمات برمجية وخطط إنشاء البيانات.
إلى توسيع تحديد * في تعريف عرض
في عرض مخطط، انقر نقراً مزدوجاً فوق طريقة العرض vEmployeeAbsenceHistory.
Transact-SQLيفتح محرر، ويعرض تعريف عرض.
في قائمة بيانات ، أشر إلى إعادة بناء التعليمات البرمجية، وانقر فوق توسيع أحرف البدل.
يظهر صندوق الحوار معاينة التغييرات.
في القائمة توسيع أحرف البدل ، انقر فوق a.* .
يظهر الجزء معاينة التغييرات التحديثات التي سيتم تطبيقها إلى عرض.
انقر فوق تطبيق.
يتم تطبيق التغييرات على مشروع قاعدة بيانات الخاصة بك. بعد ذلك تقوم تأهيل الأسماء الموجودة في تماما إجراء مخزّن الذي قمت بتعريفه في إجراء سابقة في هذه معاينة.
بشكل كامل تأهيل الأسماء الموجودة في إجراء مخزّن
في عرض مخطط، انقر نقراً مزدوجاً فوق uspRecordAbsence إجراء مخزّن.
Transact-SQLيفتح محرر، ويعرض تعريف إجراء المخزن.
في قائمة بيانات ، أشر إلى إعادة بناء التعليمات البرمجية ، و انقر فوق تأهيل ثقة كاملة من الأسماء.
من معاينة التغييرات صندوق حوار يظهر ويعرض الجميع التغييرات التي سيتم إجراؤها إذا قمت بتطبيق تشغيل إعادة بناء التعليمات البرمجية للمشروع.
بعد مراجعة التغييرات، انقر فوق يطبق.
يتم تطبيق التغييرات على مشروع قاعدة بيانات الخاصة بك.
إلى إعادة تسمية العمود BeginDate
في طريقة عرض المخطط، توسيع الجدول AbsenceHistory، توسيع العقدة عمود s، انقر فوق BeginDate عمود.
في قائمة بيانات ، أشر إلى إعادة بناء التعليمات البرمجية، ومن ثم انقر فوق إعادة تسمية .
يظهر مربع الحوار "إعادة تسمية".
ملاحظة
يمكنك أيضا يمين-انقر فوق BeginDate في عرض مخطط، أشر إلى إعادة بناء التعليمات البرمجيةوثم انقر فوق إعادة التسمية.
في من الاسم جديد، اكتب "البدء".
تحديد معاينة التغييرات فحص المربع، ثم انقر فوق موافق .
يظهر صندوق الحوار معاينة التغييرات وقم بعرض الجميع التغييرات التي سيتم إجراؤها إذا قمت بتطبيق عملية إعادة تسمية إلى مشروع قاعدة بيانات الخاصة بك.
انقر فوق تطبيق.
يتم إجراء التغييرات. اسم العمود هو محدث، ويظهر اسم عمود جديد في عرض مخطط لكل كائن تم محدثه. إذا قمت بفتح تعريف قيد تاريخ التي قمت بتحديدها في هذا الموضوع، تم محدث القيد أيضا للإشارة إلى اسم العمود الجديد.
الخطوات التالية
في هذه المرحلة، ستقوم عادة مراجعة التحديثات مع عضو فريق العمل الذي تقوم بإجراء استعراض تعليمات برمجية، وثم سيتم يودع التغييرات الخاصة بك إلى التحكم بالإصدار. عند هذه النقطة، يتم تحديث الخاص بك مشروع قاعدة بيانات، تمثيل دون اتصال لمخطط قاعدة البيانات الخاصة بك. يجب نشر مشروع قاعدة بيانات هذه إلى قاعدة بيانات هدف إلى تحديث مخطط المنشورة.
عند يطبق عملية إعادة بناء التعليمات البرمجية إلى قاعدة بيانات المشروع، معلومات حول تلك تشغيل هو بتسجيلها في ملف يسجل refactoring في حالة إعادة تسمية أو تحريك الكائن باستخدام sp_rename أو ALTER. في هذه معاينة، السجل ملف يسمى RefactorAdventureWorks.refactorlog. ملف السجل إعادة بناء التعليمات البرمجية هو المستخدمة في وقت النشر للمحافظة على هدف التغييرات الخاصة بك إعادة بناء التعليمات البرمجية. ل مثال، يسجل إعادة بناء التعليمات البرمجية سيقوم بتسجيل التغييرات إذا قمت بإعادة تسمية عمود. في وقت توزيع، تلك المعلومات يمنع العمود بالاسم القديم الذي يتم إسقاط، بالإضافة إلى أية بيانات تحتوي على، و على عمود فارغ الذي يتم إنشاؤه باستخدام اسم جديد. إذا كنت استخدم إعادة بناء التعليمات البرمجية، لم يكن لديك لإضافة بيانات إلى برامج نصية pre-توزيع و ينشر-توزيع للاحتفاظ بالبيانات.
راجع أيضًا:
المهام
كيفية القيام بما يلي: نشر قاعدة بيانات إعادة بناء التعليمات البرمجية التغييرات
المبادئ
Move a Database Object to a Different Schema
تأهيل أسماء الكائنات قاعدة بيانات بالكامل
توسيع أحرف البدل في العبارات تحديد
يتم الآن التحليل? قاعدة بيانات تعليمات برمجية إلى تحسين جودة تعليمات برمجية