查询 sql server 每天产生新表的存储过程

[ 1814 查看 / 0 回复 ]

存储过程:
  1. DECLARE @DatabaseName varchar(255)
  2. DECLARE @TableName varchar(255)
  3. set nocount on
  4. Declare Database_Cursor Cursor for select name from master.dbo.sysdatabases where dbid>4

  5. OPEN Database_Cursor
  6. FETCH NEXT FROM  Database_Cursor INTO @DatabaseName

  7. WHILE(@@FETCH_STATUS=0)
  8. BEGIN
  9.         PRINT convert(varchar(12),getdate(),101) + '      ' + '      数据库名:' + @DatabaseName
  10.         exec( 'SELECT ''' + '||' + ''' as id,''' +@DatabaseName+ ''' as databasename,name,crdate,refdate into #ddd FROM ' +@DatabaseName+ '..sysobjects WHERE xtype=''U'' and datediff(day,crdate,getdate())=0; select * from #ddd;drop table #ddd')
  11.         FETCH NEXT FROM  Database_Cursor INTO @DatabaseName
  12. END

  13. CLOSE Database_Cursor
  14. DEALLOCATE Database_Cursor
  15. GO
复制代码
配合批处理就可以获得多台sql server 服务器的新表:
  1. set aTime=%time%
  2. set bDate=%date:~4,20%
  3. set bTime=%time:~0,2%-%time:~3,2%
  4. osql -S192.168.0.192 -U sa -P sa -n -w 200 -i "D:\log_collect\sqlmonitor\sqlNewTableQuery.sql" -o "D:\log_collect\sqlmonitor\monitorbyday\servername%bDate%.txt"
  5. quit
  6. exit
复制代码
分享 转发
TOP