常用查詢(二):查詢庫中所有表的數據(根據主鍵排序)

該查詢腳本包含以下內容(sqlserver2005):
1、查詢庫中所有表
2、查詢庫中所有表的數據(根據主鍵排序)
3、查詢庫中所有沒有主鍵表
4、將庫中所有沒有主鍵表加上主鍵
5、導出庫中所有外鍵關係重建腳本
6、刪除所有外鍵關係
7、查詢庫中所有具有聚集索引的表
8、查詢庫中出現過的字段類型
9、查詢某個字段類型在那些表中出現過
10、刪除庫中所有表的數據
11、查詢存在計算列(包括列名和表名)
12、常用操作腳本
13、查詢日誌中出現過表的所有數據(根據主鍵排序)
 
常用查詢(二):查詢庫中所有表的數據(根據主鍵排序)
四、查詢庫中所有表的數據(根據主鍵排序):
declare @primarykeylist varchar(200)
declare   @tableName   varchar(200)  
 declare   tb_cursor   cursor      for
 select name from sysobjects where xtype ='U'
  open   tb_cursor  
 fetch   next   from   tb_cursor   into   @tableName;
 while   @@fetch_status = 0
     begin
 begin
  if (objectproperty(object_id(@tableName),'TableHasPrimaryKey') = 0)
 begin
  set @primarykeylist = null
 end
 else if (objectproperty(object_id(@tableName),'TableHasPrimaryKey') = 1)
 begin
  declare @index_id smallint
  select @index_id = index_id from  sys.indexes where [object_id] = object_id(@tableName) and is_primary_key = 1
  declare @i int;
  set @i = 1;
  set @primarykeylist = ''
  while (index_col(@tablename,@index_id,@i) is not null)
  begin
   set @primarykeylist = @primarykeylist + index_col(@tablename,@index_id,@i)+','
   set @i = @i+1
  end
  set @primarykeylist = substring(@primarykeylist,1,len(@primarykeylist)-1)
 end
 end
 print 'print ''' +  @tableName + ''''
 if  @primarykeylist is not null
 begin
  print 'select * from '+ @tableName + ' order by ' + @primarykeylist
 end
 else
 begin
  print 'select * from '+ @tableName
 end
 fetch   next   from   tb_cursor   into   @tableName;
     end
 
  close   tb_cursor
  deallocate  tb_cursor
(該腳本對你有任何幫助,或需要其他功能腳本,請直接回復)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章