PDA

View Full Version : دستور خالی کردن(Empty) کردن جداول SQL Server در دلفی



nasr
یک شنبه 04 دی 1384, 07:48 صبح
سلام

با چه دستوری میشه جداول SQL را خالی کرد. چون عنوان Empty را نداره و من با یک حلقه اون را خالی می کنم و Error می ده

ممنون میشم راه اصولی این کار را بفرمایید

m-khorsandi
یک شنبه 04 دی 1384, 13:51 عصر
شما با استفاده از دو تا دستور میتونید این کار رو انجام بدید

TRUNCATE TABLE tablename
که تمام رکوردها رو حذف میکنه.شرطی برای اون نمیتونید در نظر بگیرید.
سریعتر هست به این دلیل که از منابع سیستمی کمتری استفاده میکند مانند ثبت تک تک کورد ها در Log File
شمارنده فیلدهایی که به صورت Identity در نظر گرفته شده اند رو Reset میکنه.
در ضمن Truncate رو برای جدولی که رابطه ای با جداول دیگه داره نمیتونید استفاده کنید.



DELETE FROM tablename
WHERE condition
سرعت حذف نسبت به دستور قبلی کمتر هست چون رکوردها رو Log میکنه
از شرطها هم میتونید استفاده کنی.د
با Foreign Key ها هم مشکلی نداره.


میتونید این دستورات رو با استفاده از Query یا Stored Procedure اجرا کنید.

nasr
دوشنبه 05 دی 1384, 07:41 صبح
بسیار ممنون و متشکر از جوابتون

abbaspour
پنج شنبه 24 مرداد 1387, 14:17 عصر
با سلام.
اگر بخواهيم كليه ديتا هاي موجود در همه جداول در ديتابيس SQL رو پاك كنيم چي؟دستورش در QUERY چيه؟
MERCI

m-khorsandi
پنج شنبه 24 مرداد 1387, 19:21 عصر
فرض ميكنيم كه از SQL Server 2000 استفاده ميكنی،
ميتونی از پروسيجر sp_MSforeachtable برای اينكار استفاده كنی،
اين متد جزء sp های داكيومنت نشده‌ی SQL Server هست بنابراين ممكنه كه در نسخه‌های‌ بعدی چنين spیی وجود نداشته باشه ولی تا جائيكه ميدونم اين دستور توی SQL Server 2005 هم وجود دارد.


sp_MSforeachtable 'delete ?'

اين دستور رو برای جداولی كه ارتباطی با هم ندارند خيلی راحت و ساده به همين شكلی كه نوشتم ميتونی استفاده كنی. ولی برای جداولی كه با هم ارتباط دارند اول بايد Relationship ها رو غير فعال كنی و بعد اين دستور رو اجرا كنی.

اطلاعات بيشتر رو از گوگل بگير.

nasr
شنبه 26 مرداد 1387, 10:19 صبح
اين متد جزء sp های داكيومنت نشده‌ی SQL Server هست بنابراين ممكنه كه در نسخه‌های‌ بعدی چنين spیی وجود نداشته باشه ولی تا جائيكه ميدونم اين دستور توی SQL Server 2005 هم وجود دارد.


sp_MSforeachtable 'delete ?'

.

چطور میشه متدهای داکیومنت نشده را پیدا کرد؟

m-khorsandi
شنبه 26 مرداد 1387, 11:19 صبح
SQL Server 2000 useful undocumented stored procedures (http://www.mssqlcity.com/Articles/Undoc/SQL2000UndocSP.htm) و گوگل.