DECLARE @TABLENAME VARCHAR(100) DECLARE @SQLSTR VARCHAR(2000) DECLARE TABLE_CURSOR CURSOR FOR SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' OPEN TABLE_CURSOR FETCH NEXT FROM TABLE_CURSOR INTO @TABLENAME WHILE @@FETCH_STATUS = 0 BEGIN SELECT @SQLSTR='SELECT TOP 1 * FROM '+@TABLENAME EXEC(@SQLSTR) IF @@ROWCOUNT=0 BEGIN PRINT @TABLENAME END FETCH NEXT FROM TABLE_CURSOR INTO @TABLENAME END CLOSE TABLE_CURSOR DEALLOCATE TABLE_CURSOR
declare @vTableName nvarchar(100) declare #cCursor cursor for select name from sysobjects where xtype='U' open #cCursor fetch next from #cCursor into @vTableName while @@fetch_status=0 begin --print 'if not (exists(select top 1 0 from '+@vTableName+')) print '''+@vTableName+''' ' exec('if not (exists(select top 1 0 from '+@vTableName+')) print '''+@vTableName+''' ') fetch next from #cCursor into @vTableName end close #cCursor deallocate #cCursor
我被問糊塗了
DECLARE @SQLSTR VARCHAR(2000)
DECLARE TABLE_CURSOR CURSOR
FOR SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U'
OPEN TABLE_CURSOR
FETCH NEXT FROM TABLE_CURSOR INTO @TABLENAME
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @SQLSTR='SELECT TOP 1 * FROM '+@TABLENAME
EXEC(@SQLSTR)
IF @@ROWCOUNT=0
BEGIN
PRINT @TABLENAME
END
FETCH NEXT FROM TABLE_CURSOR INTO @TABLENAME
END
CLOSE TABLE_CURSOR
DEALLOCATE TABLE_CURSOR
declare @vTableName nvarchar(100)
declare #cCursor cursor for
select name from sysobjects where xtype='U'
open #cCursor
fetch next from #cCursor into @vTableName
while @@fetch_status=0
begin
--print 'if not (exists(select top 1 0 from '+@vTableName+')) print '''+@vTableName+''' '
exec('if not (exists(select top 1 0 from '+@vTableName+')) print '''+@vTableName+''' ')
fetch next from #cCursor into @vTableName
end
close #cCursor
deallocate #cCursor