المساعد الشخصي الرقمي

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


Black Shield
24-03-2016, 01:53 AM
http://store2.up-00.com/2015-07/1437915467981.png



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

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

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

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 ده ايه ؟!
ده اسم الي بيربط الداتا بالملفات الي متخزن فيها الداتا بيز

-- 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 = MyDB, NEWNAME = NewMyDB_Data);
ALTER DATABASE MyDB MODIFY FILE (NAME = MyDB _log, NEWNAME = NewMyDB_log);


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


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
هتروح على المسار ده
C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

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

-- 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.l df');

اعتقد الكويري مفهوم و مشروح فوق
MyDB ده هاتبدلها بأسم الداتا بيز و لو غيرت اسمها استخدم الأسم الجديد
Logical_Name هاتكتب الأسم الي بيظهر لك لما تعمل الكويري التاني من فوق
NewMyDB.mdf و NewMyDB_log.ldf هنعدلهم بالاسماء الي عدلناهم فوق
زي ما قولنا مثلا SRO_BS_SH.mdf و SRO_BS_SH_Log.ldf


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

:irvine:

Hamza FiGo
25-03-2016, 11:33 PM
تسلم ايدك وهيسهل علي ناس كتير . بس عندي تعقيب ^^

فية ناس هتقولك يعني اية Logical Name - DB File Path - File Type - State

ياريت تشرحهم شرح بسيط وكل واحده بمثال هيكون افضل وبكدة هيكون موضوع متكامل :v:

Xan
26-03-2016, 12:30 AM
طيب و البروسدرات اللي اصلا متسجله بي اسم الداتا بيز

Dev.BigBear
26-03-2016, 02:38 AM
حبيبيى و الله جيت فى وقتك اوووى
:jumpy:

Mohamed ElKersh
26-03-2016, 03:14 AM
احلي واحد انت جيت في وقتك و احسن حماية بقاا :]

بس سؤال
بنسبة لل Procuders اللي في الاسيسيتمات و و Procuders اللي في الداتابيز ال 3 هيتغيروا ولا ايه ؟

Black Shield
26-03-2016, 03:25 AM
تسلم ايدك وهيسهل علي ناس كتير . بس عندي تعقيب ^^

فية ناس هتقولك يعني اية Logical Name - DB File Path - File Type - State

ياريت تشرحهم شرح بسيط وكل واحده بمثال هيكون افضل وبكدة هيكون موضوع متكامل :v:

عنيا يا كبير ^^ لما ارجع بس بكرا من الجامعه عشان عندي امتحان

طيب و البروسدرات اللي اصلا متسجله بي اسم الداتا بيز

عشان كده بقول بدون اي مشاكل ^^
و ديه الفكرة من الـQuery انت ممكن تعدل اسم الـDatabase عادي بـRename
لاكن الـQuery بيعدل اسم الـDatabase في كل حاجه حتى الملفات الي بتتخزن فيها الداتا بتعتك


حبيبيى و الله جيت فى وقتك اوووى
:jumpy:

انا في الخدمه ديما :wink3:

احلي واحد انت جيت في وقتك و احسن حماية بقاا :]

بس سؤال
بنسبة لل Procuders اللي في الاسيسيتمات و و Procuders اللي في الداتابيز ال 3 هيتغيروا ولا ايه ؟

بيتم تغيرهم في كل الـStored Procedures
متقلقش

elbattawy1st
26-03-2016, 04:07 AM
تسلم ايدك :character15::character15:

Mohamed ElKersh
26-03-2016, 04:43 AM
بايظ :] شكرا علي انك بوظتلي اللعبة :]

Mohamed ElKersh
26-03-2016, 05:00 AM
ابوس اي حاجة جربواااااااااااااااااااااااااااا الحاجة

MikrotikBody
26-03-2016, 05:58 AM
طيب و البروسدرات اللي اصلا متسجله بي اسم الداتا بيز

ممكن حضرتك تستخدم كيوري يبحث عن أسم الداتا في البروسيدور
SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id)
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE '%Name of Database%'

BLACK X™
26-03-2016, 11:44 AM
تسلم موضوع جميل وهيحل مشاكل كتير

Dangers SrO
26-03-2016, 12:30 PM
تسلم يا كبير ديما تجيب الجديد :lol2:

Black Shield
26-03-2016, 10:39 PM
بايظ :] شكرا علي انك بوظتلي اللعبة :]

ابوس اي حاجة جربواااااااااااااااااااااااااااا الحاجة

حضرتك احنا مش بنلعب هنا
لما يكون عندك مشكله قول عندي مشكلة متقوليش بايظ تمام
mc6CdcarnHI

Black Shield
26-03-2016, 10:40 PM
تسلم موضوع جميل وهيحل مشاكل كتير

تسلم يا كبير ديما تجيب الجديد :lol2:

العفو يا شباب ^^

Black Shield
27-03-2016, 02:41 AM
Topic Updated!!

Mohamed ElKersh
27-03-2016, 03:03 AM
حضرتك احنا مش بنلعب هنا
لما يكون عندك مشكله قول عندي مشكلة متقوليش بايظ تمام
mc6CdcarnHI

انا اسف مقدما
بس انا عملت كل اللي في الفيديو مفيش حاجة اتغيرت :] في البورسيدور ؟

MikrotikBody
27-03-2016, 03:52 AM
انا اسف مقدما
بس انا عملت كل اللي في الفيديو مفيش حاجة اتغيرت :] في البورسيدور ؟

You have to learn and not Copy and Paste

Dev.Ri3o
27-03-2016, 12:58 PM
10/10
:thumbup:

Black Shield
27-03-2016, 06:53 PM
انا اسف مقدما
بس انا عملت كل اللي في الفيديو مفيش حاجة اتغيرت :] في البورسيدور ؟

قصدك انهي اسماء بظبط ؟

HLP
28-03-2016, 09:53 AM
الله ينور يا كبير 10/10

Black Shield
28-03-2016, 09:47 PM
10/10
:thumbup:

تسلم


الله ينور يا كبير 10/10

حبيبي يا رامي

Last_Fiddler
13-04-2016, 03:20 AM
انا جربت الموضوع اتغيرت فى اسم الداتا بس من بره اما البرسيد متغيروش فيه

Dev.Ahmed_Elnashary
23-06-2018, 12:05 PM
بقوالك ايه ياريت شرح للdata و اللوج ,اتاكد اني producer صح !؟ معلش

DraCula1337
27-06-2018, 07:25 AM
موضوع جميل جدا جدا جارى التجربه:showoff:

MrGame3
09-04-2020, 01:38 AM
Msg 911, Level 16, State 1, Line 5
Database 'DR_LOG_KT' does not exist. Make sure that the name is entered correctly.

Error

MrGame3
09-04-2020, 03:04 AM
Msg 911, Level 16, State 1, Line 5
Database 'DR_LOG_KT' does not exist. Make sure that the name is entered correctly.

Error

تم حل المشكلة وشكرا للموضوع

romio33
14-04-2020, 02:08 AM
http://store2.up-00.com/2015-07/1437915467981.png



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

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

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

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 ده ايه ؟!
ده اسم الي بيربط الداتا بالملفات الي متخزن فيها الداتا بيز

-- 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 = MyDB, NEWNAME = NewMyDB_Data);
ALTER DATABASE MyDB MODIFY FILE (NAME = MyDB _log, NEWNAME = NewMyDB_log);


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


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

-- 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.l df');

اعتقد الكويري مفهوم و مشروح فوق
MyDB ده هاتبدلها بأسم الداتا بيز و لو غيرت اسمها استخدم الأسم الجديد
Logical_Name هاتكتب الأسم الي بيظهر لك لما تعمل الكويري التاني من فوق
NewMyDB.mdf و NewMyDB_log.ldf هنعدلهم بالاسماء الي عدلناهم فوق
زي ما قولنا مثلا SRO_BS_SH.mdf و SRO_BS_SH_Log.ldf


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

:irvine:





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

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

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

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

مش داتا بيس

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

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

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

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

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

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



https://k.top4top.io/p_1564o9aeq1.png (https://top4top.io/)



https://c.top4top.io/p_15648y1532.png (https://top4top.io/)

https://b.top4top.io/p_1564y5xgg1.png (https://top4top.io/)

PeterEaston
20-04-2020, 07:07 PM
شرح معقد جدااااااا وغير مفهوم

MR.KaBO
31-05-2020, 08:33 PM
شرح معقد جدااااااا وغير مفهوم
+1