50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

پاک کردن جدول

با سلام

مثلا ما یک دیتابیس بنام Data داریم که 50 تا جدول توش هس

آیا میشه هرکدوم از جدول هایی که خالی هستن یعنی هیچ داده ای ندارن رو به صورت یکجا پاک کنیم ؟ (یعنی کد بنویسیم که هرکدوم از جدول ها داده ندارن رو حذف کن)

پرسیده شده در 1398/02/20 توسط

1 پاسخ

1

سلام، اول این دستور را اجرا کنید

use [Your database name]

بعد این دستورات را

declare @counter int, @talblesCount int
set @counter = 0
set @talblesCount = (select count(*) from INFORMATION_SCHEMA.TABLES)
while @talblesCount > @counter
begin
	declare @tableName nvarchar(1000),
	@tableSchema nvarchar(1000),
	@query nvarchar(max),
	@tableRecordsCount int

	set @tableSchema = (select [TABLE_SCHEMA] FROM INFORMATION_SCHEMA.TABLES order by [TABLE_NAME] offset @counter rows fetch next 1 rows only)
	set @tableName = (select [TABLE_NAME] FROM INFORMATION_SCHEMA.TABLES order by [TABLE_NAME] offset @counter rows fetch next 1 rows only)

	select @query = N'select @tableRecordsCount = count(*) from [' + @tableSchema + '].[' + @tableName + ']'

	exec sp_executesql @query, N'@tableRecordsCount int output', @tableRecordsCount output


	if @tableRecordsCount = 0
	begin
		execute('drop table [' + @tableSchema + '].[' + @tableName + ']')
	end
	
	set @counter = @counter + 1
end
print 'The operation done!'

موفق باشید.

پاسخ در 1398/02/20 توسط

پاسخ شما