عرض مشاركة واحدة
قديم 14-04-2020, 02:08 AM   #27

romio33
عضو نشيك





• الانـتـسـاب » Jan 2020
• رقـم العـضـويـة » 147259
• المشـــاركـات » 91
• الـدولـة »
• الـهـوايـة »
• اسـم الـسـيـرفـر » No Server
• الـجـنـس » Male
• نقـاط التقييم » 10
romio33 صـاعـد

romio33 غير متواجد حالياً

231  



افتراضي رد: تغير اسماء الـDatabase بدون اي مشاكل ( Query )



اقتباس:
المشاركة الأصلية كتبت بواسطة Black Shield عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]




مهم اعمل BackUp قبل ما تعمل حاجه عشان متبوظش حاجه و ترجع تقول الكويري بايظ
عشان انا شغال بيهم

[YOUTUBE]mc6CdcarnHI[/YOUTUBE]

الموضوع بسيط للي عاوز يغير اسم الـDatabase بتاعته من غير اي مشاكل

اول حاجة هنبدأ بيها تغير اسماء الـDatabases بالكويري ديه

كود PHP:
USE master
GO
ALTER DATABASE SRO_VT_SHARD 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE
GO
EXEC master
..sp_renamedb 'SRO_VT_SHARD','SRO_BS_SH'
GO
ALTER DATABASE SRO_BS_SH 
SET MULTI_USER 
GO 
زي ما انت شايف هتغير اسم الـDatabase الحالي و الأسم الي انت عاوزة

كده انت غيرت اسماء الـDatabase و تم تعديل الـStored Procedures

دلوقتي هنغير اسم الـDatabase في الـ Logical Name
طيب الـLogical Name ده ايه ؟!
ده اسم الي بيربط الداتا بالملفات الي متخزن فيها الداتا بيز

كود PHP:
-- Changing logical names
-- Replace all MyDBs with the name of the DB you want to change its name
-- Replace all NewMyDB with the new name you want to set for the DB
ALTER DATABASE MyDB MODIFY FILE 
(NAME MyDBNEWNAME NewMyDB_Data);
ALTER DATABASE MyDB MODIFY FILE (NAME MyDB _logNEWNAME NewMyDB_log); 

عشان نتأكد من ان الاسماء اتعدلت نستخم الـQuery

كود PHP:
USE master
GO

/* Identify Database File Names */
SELECT 
name 
AS [Logical Name], 
physical_name AS [DB File Path],
type_desc AS [File Type],
state_desc AS [State
FROM sys.master_files
WHERE database_id 
DB_ID(N'SRO_BS_SH')
GO 
هتحط هنا (N'SRO_BS_SH') اسم الـDatabase الجديد


الـQuery الي جاي ده عشان تغير الـ physical database files او الـDB File Path
الداتا بتتخزن في ملفين ملف بصيغة .mdf و ده مسئول عن تخزين كل الداتا الي في الداتا بيز
و ملف بصيغة .ldf و ده مسؤل عن تسجيل كل حاجه حصلت في الـDatabase

طيب هاتحتاج تغيره ليه : يعني لزايدة التأكد من حماية السيرفر
و كمان عشان الناس الي بتعمل Developing لـGame مثلا عاوز ياخد حاجه من Database مبيقدرش يعملها ريستور جمب الداتا الاصلية بتاعته بسبب انهم بيستخدموا نفس اسم الملفات الي هو SRO_VT_XXXX لما تعمل الخطوه ديه هتقدر تعمل ريستور لداتا تانية عشان تاخد منها الي انت عاوزه براحتك من غير ما تاثر على الداتا بتعتك ولا تدوخ نفسك

طيب هاتعمل ايه بظبط ؟! اقول لك
اول حاجه في ال SQL هاتدوس كليك يمين على الداتا بيز الي هاتشتغل عليه
مثلا SRO_VT_SHARD
و هتنزل على Task و تعملها Take Offline
هتروح على المسار ده


11 الرقم ممكن يكون متغير على حسب نسخة ال SQL عندك
هتدور على SRO_VT_SHARD و SRO_VT_SHARD_Log
هنغير اسمهم للأسم الي انت عاوزه مثلا SRO_BS_SH و SRO_BS_SH_Log
تمام كده هاتعمل الكويري بقى عشان تعدلهم في الSQL

كود PHP:
-- Changing Physical names and paths
-- Replace all MyDB with the Database name
-- Replace all Logical_Name with the new name you want to set for the DB
-- Replace 'C:\...\NewMyDB.mdf' with full path of new DB file to be used
ALTER DATABASE DR_LOG_KT MODIFY FILE 
(NAME 'Logical_Name_Data'FILENAME 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\NewMyDB.mdf');
-- 
Replace 'C:\...\NewMyDB_log.ldf' with full path of new DB log file to be used
ALTER DATABASE DR_LOG_KT MODIFY FILE 
(NAME 'Logical_Name_Log'FILENAME 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\NewMyDB_log.ldf'); 
اعتقد الكويري مفهوم و مشروح فوق
MyDB ده هاتبدلها بأسم الداتا بيز و لو غيرت اسمها استخدم الأسم الجديد
Logical_Name هاتكتب الأسم الي بيظهر لك لما تعمل الكويري التاني من فوق
NewMyDB.mdf و NewMyDB_log.ldf هنعدلهم بالاسماء الي عدلناهم فوق
زي ما قولنا مثلا SRO_BS_SH.mdf و SRO_BS_SH_Log.ldf


هتكرر الـخطوات ديه مع كل Database
و ماتنساش تغير الاسماء في ملفات السيرفر ^^
لو عامل اي System هتحتاج انك تعدل اسماء الداتا بيز بالاسماء الجديده





عمل اكثر من رائع
good job

اكود شغاله وكلو تمام

بس في حاجه
انه برسيدور داتا بيس مبيتغيرش

كود اللي انت حطو بيغير برسيدور master

مش داتا بيس

اللي هو ستوري برسيدور

انا جربت كل اكود شغاله بس مع تعديل صغير في داتا عشان تشتغل كويس بدون مشاكل

يريت تنزل شرح تغير ستوري برسيدر داتا بيس بأسم داتا بيس

عشان كل يستفاد

وعلي فاكره طلريفه دي مفيده جدا وبتلغي اي بج في داتا بيس

ومنتظر منك مزيد



[IMG]عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ][/IMG]



[IMG]عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ][/IMG]

[IMG]عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ][/IMG]




رد مع اقتباس