1. create table Test 
  2.     T_RecordID uniqueidentifier not null primary key
  3.     T_UserID nvarchar(10), 
  4. create table TestLine 
  5.     TL_RecordID uniqueidentifier not null primary key
  6.     TL_T_RecordID uniqueidentifier not null references Test(T_RecordID), 
  7.  
  8. --primary key(参考sp_pkeys): 
  9. --exec sp_pkeys @table_name='TestLine' 
  10. declare @tablename as nvarchar(30) 
  11. set @tablename='TestLine' 
  12.  
  13. select column_name = convert(sysname,c.name)                
  14. from sysobjects o 
  15. join sysindexes i on i.id=o.id 
  16. join syscolumns c on c.id=o.id                  
  17. where o.id = object_id(@tablename)                                                               
  18. and (i.status & 0x800) = 0x800                              
  19. and (c.name = index_col (@tablename, i.indid,  1) or      
  20.      c.name = index_col (@tablename, i.indid,  2) or      
  21.      c.name = index_col (@tablename, i.indid,  3) or      
  22.      c.name = index_col (@tablename, i.indid,  4) or      
  23.      c.name = index_col (@tablename, i.indid,  5) or      
  24.      c.name = index_col (@tablename, i.indid,  6) or      
  25.      c.name = index_col (@tablename, i.indid,  7) or      
  26.      c.name = index_col (@tablename, i.indid,  8) or      
  27.      c.name = index_col (@tablename, i.indid,  9) or      
  28.      c.name = index_col (@tablename, i.indid, 10) or      
  29.      c.name = index_col (@tablename, i.indid, 11) or      
  30.      c.name = index_col (@tablename, i.indid, 12) or      
  31.      c.name = index_col (@tablename, i.indid, 13) or      
  32.      c.name = index_col (@tablename, i.indid, 14) or      
  33.      c.name = index_col (@tablename, i.indid, 15) or      
  34.      c.name = index_col (@tablename, i.indid, 16)        
  35.      ) 
  36.  
  37. --foreign key: 
  38. select t1.name,t2.rtableName,t2.name  
  39. from  
  40.     select col.name, f.constid as temp  
  41.     from syscolumns col,sysforeignkeys f  
  42.     where f.fkeyid=col.id  
  43.     and f.fkey=col.colid  
  44.     and f.constid in  
  45.     (  
  46.         select distinct(id)   
  47.         from sysobjects  
  48.         where object_name(parent_obj)=@tablename 
  49.         and xtype='F'  
  50.     )  
  51. as t1 
  52. join 
  53.     select object_name(f.rkeyid) as rtableName,col.name,f.constid as temp  
  54.     from syscolumns col,sysforeignkeys f  
  55.     where f.rkeyid=col.id  
  56.     and f.rkey=col.colid  
  57.     and f.constid in  
  58.     ( 
  59.         select distinct(id)  
  60.         from sysobjects  
  61.         where object_name(parent_obj)=@tablename  
  62.         and xtype='F'  
  63.     )  
  64. as t2 on t2.temp=t1.temp