取得單個資料庫下所有表的信息

 

Create   table  #TableTemp1( TableName  varchar ( 40 ), 
                          TableDescription 
char ( 200 ),
                          TableKey 
varchar ( 30 ), 
                          ColumnNo 
SmallInt
                          ColumnName 
varchar ( 30 ),  
                          ColType 
varchar ( 30 ), 
                          ColBytes 
varchar ( 30 ), 
                          ColLength 
varchar ( 30 ), 
                          ColDigital 
varchar ( 30 ), 
                          ColDescription 
varchar ( 200 ),
                          ColDefaultValue 
varchar ( 30 ),
                          ColIdentity 
varchar ( 30 ),
                          ColIsNull  
varchar ( 30 ) ) 

   
Declare   @strTableName   Varchar ( 40 )

  
Declare  Cur_TableName  CurSor   For     
     
Select  Name TableName
        
From  sysObjects
       
Where  Status  > 0
         
And  Xtype  =   ' U '
         
And   Not  (name  Like   ' %LOG ' )

   
-- 打開游標
    Open  Cur_TableName
      
WHILE   1 = 1
       
BEGIN
             
FETCH   NEXT   FROM  Cur_TableName  Into
                   
@strTableName

             
IF  ( NOT   @@FETCH_STATUS   =   0 )
                 
BREAK
             
           
Insert   Into  #TableTemp1 
                 
SELECT   TableName = case  
                                     
when  syscolumns.colorder = 1   then  sysobjects.name 
                                     
else   ''  
                                    
end
                         TableDescription
= case  
                                            
when  syscolumns.colorder = 1   then   Convert ( varchar ( 200 ), isnull (syspropertiesExtr.value, '' )) 
                                            
else   ''  
                                           
end
                         TableKey
= case  
                                    
when   exists ( SELECT   1  
                                                   
FROM  sysobjects 
                                                  
Where  xtype = ' PK '   and  name  in  ( SELECT  name 
                                                                                   
FROM  sysindexes 
                                                                                  
WHERE  indid  in ( SELECT  indid 
                                                                                                   
FROM  sysindexkeys 
                                                                                                  
WHERE  id  =  syscolumns.id 
                                                                                                  
AND  colid = syscolumns.colid)))  then   ' '  
                                     
else   ''  
                                    
end
                         ColumnNo
= syscolumns.colorder, 
                         ColumnName
= syscolumns.name, 
                         ColType
= systypes.name, 
                         ColBytes
= syscolumns.length, 
                         ColLength
= COLUMNPROPERTY (syscolumns.id,syscolumns.name, ' PRECISION ' ), 
                         ColDigital
= isnull ( COLUMNPROPERTY (syscolumns.id,syscolumns.name, ' Scale ' ), 0 ), 
                         ColDescription
= Convert ( varchar ( 20 ), isnull (sysproperties. [ value ] , '' )) , 
                         ColDefaultValue
= ' Default '   +   isnull (syscomments. text , '' ),
                         ColIdentity 
= case  
                                        
when   COLUMNPROPERTY ( syscolumns.id,syscolumns.name, ' IsIdentity ' ) = 1   then   ' '
                                        
else   ''  
                                       
end ,
                         ColIsNull
= case  
                                     
when  syscolumns.isnullable = 1   then   ' '
                                     
else   ''  
                                   
end  
                  
FROM  syscolumns syscolumns   --
                       Left   Join  systypes systypes  --  b 
                         On  syscolumns.xtype = systypes.xusertype 
                     
Inner   Join  sysobjects sysobjects  --
                         On  syscolumns.id = sysobjects.id  
                       
And  sysobjects.xtype = ' U '  
                       
And  sysobjects.name <> ' dtproperties '  
                      
Left   Join  syscomments syscomments  --
                         On  syscolumns.cdefault = syscomments.id 
                      
Left   Join  sysproperties sysproperties   --
                         On  syscolumns.id = sysproperties.id 
                       
And  syscolumns.colid = sysproperties.smallid   
                      
Left   Join  sysproperties syspropertiesExtr  --
                         On  sysobjects.id = syspropertiesExtr.id 
                       
And  sysproperties.smallid = 0  
                  
Where  sysobjects.name = @strTableName     -- 如果只查詢指定表,加上此條件 
                     Order   By  syscolumns.id
                            ,syscolumns.colorder 

             
       
END

    
CLOSE  Cur_TableName
    
DEALLOCATE  Cur_TableName

     
    
     
select   *  
        
From  #TableTemp1 
          
       
     
Drop   table  #TableTemp1 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值