سلام
با چه دستوری(scrip) می تونم تمام اطلاعات یک دیتابیس رو پاک کنم؟
ممنون
سلام
با چه دستوری(scrip) می تونم تمام اطلاعات یک دیتابیس رو پاک کنم؟
ممنون
آخرین ویرایش به وسیله Arash_janusV3 : سه شنبه 14 دی 1389 در 11:09 صبح
سلام فکر می کنم با دستور Truncate تمام رکوردهای یک جدول رو می تونی پاک کنی اگه اشتباه نکنم فیلد ID هم بعد از اون دیگه از یک شروع می شه
یکی راه های ساده حذف اطلاعات جداول نه بانک ها استفاده از دستور ترانکیته که دوستمون فرمودن اما روش دیگری هم وجود داره
Delete * from tablename
کوئری بالا رو اجرا کنید و به جای tablename نام جدول مورد نظر رو بذارین
با احترام
سلام
دستوری برای اینکار وجود ندارد
میتونی یک sp بنویسی و این دستور رو برای تک تک جداولت بنویسی و در انتها executeش کنی:
truncate table <table name>
سلام.
با این دستور میشه ولی اگر بین جداول Relation داشته باشند خطا دریافت میکنند.سلام فکر می کنم با دستور Truncate تمام رکوردهای یک جدول رو می تونی پاک کنی
این دستور اشتباه هست و نیازی به * نیست.Delete * from tablename
نیازی به اینکار نیست.دستوری برای اینکار وجود ندارد
میتونی یک sp بنویسی و این دستور رو برای تک تک جداولت بنویسی و در انتها executeش کنی
میشه باکد زیر خیلی راحت اینکارو انجام داد.
Exec Sp_MsforEachTable 'Delete from ?'
با این دستور تمامی رکوردهای موجود در تمامی جداول در یک دیتابیس حذف خواهد شد.
موفق باشید
آخرین ویرایش به وسیله حمیدرضاصادقیان : سه شنبه 14 دی 1389 در 23:54 عصر
Telegram : @SQL_Server
درسته یه اشتباه از من بود...این دستور اشتباه هست و نیازی به * نیست.
دستوری برای اینکار وجود ندارد
میتونی یک sp بنویسی و این دستور رو برای تک تک جداولت بنویسی و در انتها executeش کنی
ستاره برای حذف کاربردی نداره
با تشکر از همه دوستان به خصوص جناب حمیدرضا صادقیان
من یک امکانی رو می خوام به برنامه ام اضافه کنم تحت عنوان حذف اطلاعات برنامه به خاطر همین باید بتونم اطلاعات کل دیتابیس رو یک جا حذف کنم اگر یک scrip هم باشه کارم راه می افته
من در تمام فرمهام حذف table رو دارم و بخاطر زیاد بودن انها و گرفتن وقت زیاد می خوام این امکان هم باشه
Exec Sp_MsforEachTable 'Delete from ?'
آیا این دستور اطلاعات دیتابیس رو حذف می کنه؟؟؟
ممنون
لطفا کار علامت سوال رو هم در پارامتر این پروسیجر توضیح بدید. چه دستوراتی رو میشه به عنوان پارامتر به اون فرستاد و اون چطوری دستورات رو اجرا میکنه؟
سلام.
این دستور در واقع خودش یک Cursor رو اجرا میکنه و روی دیتابیسی که در حال اجراست دستور ارسال شده رو برای همه جداول انجام خواهد داد.
کار علامت سوال در واقع یعنی اینکه همه جداول رو شامل بشه.
برای توضیحات بیشتر این لینک رو نگاه کنید.
Telegram : @SQL_Server
در لینکهای زیر اطلاعات کاملی وجو داره
http://forum.codecorona.com/showthread.php?tid=1180
http://vahidnasiri.blogspot.com/2009/03/sql-server.html
سلام
باتشکر از دوستان
همه چی حل شده
فقط من فزاموش کرده بودم که یک table هام نباید داده هاش خالی بشه در scrip delet باید چه دستوری رو بهش اضافه کنیم؟
اگر برای trigger هم بگید خیلی خیلی ممنون می شم
باسپاس
همون دستور منتهي به اينصورت:
sp_msForeachTable 'if ''?''<>'tblUsers' delete from ?'
يا يك چيزي تو اين مايه ها ببين كار ميكنه.
من هنور نتونستم اطلاعات یک table رو نگه دارم بقیه رو پاک کنم
لطفا راهنمایی کنید
ممنون
كافي بود يك ذره خودت كار ميكردي و امتحان ميكردي تا دقيقا به همون جوابي كه من رسيدم ميرسيدي:
EXEC sp_msforeachtable 'if ''"?"''<>''"[dbo].[t]"'' select * from ?'
t نام جدوليه كه نميخوايم select گرفته بشه. حالا شما جاي select از delete يا هر چيز ديگه اي كه ميخواي استفاده كن
پرسيدن خوبه. ولي دنبال كردن سرنخ و يادگيري خود آدم خيلي بهتر از اينه كه لقمه رو آماده بدن به ما.