如何可以过滤SQL数据库中表的字段记录为空的表?
来源:百度知道 编辑:UC知道 时间:2024/07/03 03:59:52
不是要一个个的表看,是一下子可以过滤掉没有数据的表。
declare @cur cursor
declare @n nvarchar(500)
declare @r as int
declare @sql nvarchar(500)
set @cur= cursor for
SELECT name FROM sysobjects WHERE (xtype = 'u')
open @cur
FETCH NEXT FROM @cur INTO @N
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql ='if not exists(SELECT * FROM ' + @n + ') drop table ' + @n
--exec sp_executesql @sql --我先注释了这一行,注意危险,你确认一下
print @sql
FETCH NEXT FROM @cur INTO @N
END
你的问题是改了又改,我的回答也改了又改
上面的回答中: exec sp_executesql @sql 就把没有行的表给删除了,看注释
如果你要列出表的话,如下:
set nocount on
declare @cur cursor
declare @n nvarchar(500)
declare @r as int
declare @sql nvarchar(500)
set @cur= cursor for
SELECT name FROM sysobjects WHERE OBJECTPROPERTY(id, N'IsUserTable') = 1
declare @tb table (name nvarchar(50) ,rows int)
open @cur
FETCH NEXT FROM @cur INTO @N
WHILE @@FETCH_STATUS