الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد الجدوال والعلاقات من قاعدة البيانات

مغلقمُجاب
بدأه الحوت المضيء في 8 أبريل 2013 · 4 رد · 858 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم انا  علمت قاعدة بيانات  واكتملت تقريبا بس المشكلة في بيانات تجريبية فيها هذه القاعدة لا اريدها

 

كيف اخلي قاعدة  كانها لم تستخدم من قبل  يعني جديده  ليس فيها بيانات

الحياة لاتشترى بمال مهما كانت الحياة تحتاجة ... فسوف تغادر هذة الحياة وبعدها لاحد يترحم عليك  فلا تجعل المال هو غاية بل اجعله وسيلة للنجاة

#2

يمكنك استعمال هذه التعليمات، مأخوذه من هنا:

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'

السطر الأول سيعطّل عمليات التحقق على جميع الجدوال، بفضل EXEC sp_MSForEachTable، في قاعدة البيانات كي لاتظهر مشاكل خصوصاً من العلاقات، السطر الثاني سيحذف جميع الحقول والثالثة سيعيد تفعيل عمليات التحقق.

 

هذه تجربه بسيطة:

IF OBJECT_ID('users') IS NOT NULL DROP TABLE users;
IF OBJECT_ID('groups') IS NOT NULL DROP TABLE groups;

CREATE TABLE groups (
    id INT PRIMARY KEY IDENTITY(1, 1),
    name VARCHAR(255) NOT NULL
);

CREATE TABLE users (
    id INT PRIMARY KEY IDENTITY(1, 1),
    name VARCHAR(255) NOT NULL,
    group_id INT FOREIGN KEY REFERENCES groups(id)
);

INSERT INTO groups VALUES('admin');
INSERT INTO groups VALUES('groups');

INSERT INTO users VALUES('root', 1);
INSERT INTO users VALUES('mohammad', 1);
INSERT INTO users VALUES('khaled', 2);
INSERT INTO users VALUES('Zeiad', 2);
INSERT INTO users VALUES('saeed', 2);
INSERT INTO users VALUES('Ahmed', 2);

SELECT * FROM users, groups WHERE groups.id = users.group_id;

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'


SELECT * FROM users, groups WHERE groups.id = users.group_id;
#3

شكر لك  لكن هذه تحذف  فقط الحقول بما انا اريد كانها قاعدة بيانات جديده 

 

   ID لما  اعمل له ترقيم تلقائي  

مثلا

1

2

3

4

5

 

وحذف هاذه البيانات   ولما تريد تدخل بيانات جديد بعد العملية تجدها تكمل

6

7

8

9

 وانالا اريده  تبدء هكذا  بل اريدها  تبدء من جديد  لانها جديده

1

2

3

وهكذا

تم تعديل هذه المشاركة بواسطة الحوت المضيء في 8 أبريل 2013 في 02:01

الحياة لاتشترى بمال مهما كانت الحياة تحتاجة ... فسوف تغادر هذة الحياة وبعدها لاحد يترحم عليك  فلا تجعل المال هو غاية بل اجعله وسيلة للنجاة

#4 أفضل إجابة

يمكنك تصفير العداد التلقائي باستخدام:

DBCC CHECKIDENT ('table_name', RESEED, 0)

لعملها على كافة الجدوال أضف:

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'DBCC CHECKIDENT (''?'', RESEED, 0)'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
#5

جزاك الله خير اجابتك وافية جدا شكر لك  على المساعدات اسال الله العظيم ان يرفع قدرك في الدنيا والاخرة 

الحياة لاتشترى بمال مهما كانت الحياة تحتاجة ... فسوف تغادر هذة الحياة وبعدها لاحد يترحم عليك  فلا تجعل المال هو غاية بل اجعله وسيلة للنجاة

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…