呵呵,没错,用游标,先从sysobjects中找到所有的用户表
解决方案 »
- 日均10万数据,如何处理?来点思路!畅所欲言!
- mssqlserver2000中,怎样通过语句加一个作业?
- 求助,如何关联两个查询?
- 请教各位高人,我的数据库不能进行事务日志备份,因为事务日志选项为灰色,请问怎样解决?
- sqlservers数据库中数据发生变化时,通知另个程序
- 这个触发器应该怎么触呢?还有一个功能没完成... 等待中!
- SQL Server2000里哪个函数是把字符型转换为整型的
- 可否把SQL SERVER的安装也打包进自己的程序安装中去?
- 批量--触发器,带有事务的触发器~(没分了,有后定补 问题点数 30)
- SQL中过程和视图在功能效果上有那些差别呢?
- 求按集合排序的sql语句怎么写?
- 安装问题
set @sql=''
select top 20 @sql=@sql+' if not exists(select 1 from ['+name+']) print '''+name+'不存在记录''' from sysobjects where xtype='U'
--print @sql
exec(@sql)
set @sql=''
select @sql=@sql+' if not exists(select 1 from ['+name+']) print '''+name+'不存在记录''' from sysobjects where xtype='U'
exec(@sql)
Declare MCur Cursor for
select name from sysobjects Where xtype = 'U'open MCur
Fetch next from MCur Into @Table while @@Fetch_status = 0
Begin
Exec ('IF not exists (Select 1 From ' + @Table + ')
print N''' + @Table +'''')
Fetch Next From MCur into @Table
Endclose MCur
Deallocate MCur
Create Table #T(表名 Sysname,记录数 Int
,保留空间 Varchar(10),使用空间 Varchar(10)
,索引使用空间 Varchar(10),未用空间 Varchar(10))
Insert Into #T EXEC sp_MSForEachTable 'EXEC sp_spaceused ''?'''
--查询没有记录的表名
Select * From #T Where 记录数=0
GO
Drop Table #T
vivianfdlpw()
你的这种写法只适用于表比较少的数据库。
假如数据库中的表超过500 个恐怕就不能执行了。技术交流,如有得罪,请勿见怪!