PDA

View Full Version : خالی کردن همه جداول در پایگاه داده sQL



pcb20parse
شنبه 30 خرداد 1394, 16:35 عصر
سلام دوستان . راستش من برای تست هردفعه نرم افزار هر دفعه میخوام از صفر شروع کنم میام از اول جدول هارو خالی میکنم. میخواستم بدونم خود sql همیچین امکانی داره که بشه خودش همه جدول های رو یک دفعه خالی بکنه؟؟؟؟
تو سایتهای خارجی چیزایی پیدا کردم اما متوجه نمیشم که بتونم استفاده کنم

pezhvakco
شنبه 30 خرداد 1394, 17:21 عصر
یه SP هست برای انجام یک تراکن برای همه جدول ها

sp_msforeachtable

که برای خواسته شما میشه


EXEC sp_msforeachtable 'Truncate table ?'

pcb20parse
یک شنبه 31 خرداد 1394, 11:10 صبح
ممنونم اما یه مشکلی دارم
Cannot truncate table 'dbo.EmployeeTDB' because it is being referenced by a FOREIGN KEY constraint.
این جدولو که وصل رو به جدول دیگه چی کار کنم؟

pezhvakco
یک شنبه 31 خرداد 1394, 12:42 عصر
چون کلید خارجی برای جدول ها ساخته اید، نمیشه Truncate بکار گیری کنید.
یا باید کلید ها رو موقت پاک کنید و یا
Delete رو بکار گیری کنید.

nooshin964
یک شنبه 31 خرداد 1394, 15:43 عصر
دستور sp_msforeachtable جزو دستورات undocumneted میباشد و توصیه ای به استفاده از اون نمیشه . ولی برای حل مشکل شما با رعایت تمام احتیاطهای لازم صرفا میتوان به شکل زیر نوشت و اونو 5- 6 بار پشت سر هم اجرا کرد:






sp_msforeachtable











EXEC sp_msforeachtable 'DELETE FROM ?'

pezhvakco
یک شنبه 31 خرداد 1394, 16:31 عصر
سپاس از راهنمای تون

اونو 5- 6 بار پشت سر هم اجرا کرد:
اگه میشه بنویسید :
چرا باید چند بار اجرا بشود و
این اعداد 5 و 6 رو برچه مبنایی نوشتید.