ورود

View Full Version : پیدا کردن جداولی که تعدا رکوردهای آنها از یه مقداری بیشتر است



h_baqery
سه شنبه 07 اسفند 1386, 11:27 صبح
من برای این کار دستور زیر رو نوشتم البته درsql2000 ولی درست کار نمی کنه .
بدون rowcount هم نوشتم ولی نشد لطفا راهنمایی کنید .


declare @count varchar(100)
declare @q varchar(500)
declare @n varchar(200)
declare @u varchar(200)
declare c cursor local for
select t.name,u.name from sysobjects t inner join sysusers u on t.uid = u.uid
where xtype = 'U'
order by t.name
open c
fetch next from c into @n,@u
while @@fetch_status = 0
begin
execute('select count(*) from '+@u+'.'+@n)

if @@rowcount <> 0
begin
print @n
print @@rowcount
end
fetch next from c into @n,@u
end

majid_afra222
سه شنبه 07 اسفند 1386, 12:18 عصر
سلام



declare @count varchar(100)
declare @q varchar(500)
declare @n varchar(200)
declare @u varchar(200)
declare c cursor local for
select t.name,u.name from sysobjects t inner join sysusers u on t.uid = u.uid
where xtype = 'U'
order by t.name
open c
fetch next from c into @n,@u
DECLARE @Row_Count int
DECLARE @strsql nvarchar(1000)
while @@fetch_status = 0
begin
SET @strsql = N'select @Row_Count = count(*) from '+@u+'.'+@n

execute sp_executesql @strsql, N'@Row_Count int OUTPUT', @Row_Count OUTPUT
if @Row_Count <> 0
begin
print 'Table : ' + @n + ' - RowCount : ' + CAST(@Row_Count AS varchar(100))
end
fetch next from c into @n,@u
end

AminSobati
چهارشنبه 08 اسفند 1386, 00:11 صبح
این روش رو هم در جیب خودتون داشته باشین ضرر نداره! (اگر چه فعلا sp_msforeachtable هنوز undocumented هست)



declare @x table( RecCount int, tName nvarchar(100))
insert @x exec sp_msforeachtable 'select count(*),''?'' from ?'
select * from @x order by RecCount desc