如何从SQL Server 中取得字段说明

SQL Server 2000

你可以在企业管理器中增加字段说明,也可以使用下面的代码:
SQL Server 中取得字段说明(转载)EXEC sp_addextendedproperty 
SQL Server 中取得字段说明(转载)    
'MS_Description'
SQL Server 中取得字段说明(转载)    
'some description'
SQL Server 中取得字段说明(转载)    
'user'
SQL Server 中取得字段说明(转载)    dbo, 
SQL Server 中取得字段说明(转载)    
'table'
SQL Server 中取得字段说明(转载)    table_name, 
SQL Server 中取得字段说明(转载)    
'column'
SQL Server 中取得字段说明(转载)    column_name
SQL Server 中取得字段说明(转载)
现在,你就可以得到通过下面的代码得到字段说明:
SQL Server 中取得字段说明(转载)SELECT 
SQL Server 中取得字段说明(转载)    
[Table Name] = i_s.TABLE_NAME, 
SQL Server 中取得字段说明(转载)    
[Column Name] = i_s.COLUMN_NAME, 
SQL Server 中取得字段说明(转载)    
[Description] = s.value 
SQL Server 中取得字段说明(转载)
FROM 
SQL Server 中取得字段说明(转载)    INFORMATION_SCHEMA.COLUMNS i_s 
SQL Server 中取得字段说明(转载)
LEFT OUTER JOIN 
SQL Server 中取得字段说明(转载)    sysproperties s 
SQL Server 中取得字段说明(转载)
ON 
SQL Server 中取得字段说明(转载)    s.id 
= OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME) 
SQL Server 中取得字段说明(转载)    
AND s.smallid = i_s.ORDINAL_POSITION 
SQL Server 中取得字段说明(转载)    
AND s.name = 'MS_Description' 
SQL Server 中取得字段说明(转载)
WHERE 
SQL Server 中取得字段说明(转载)    
OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME), 'IsMsShipped')=0 
SQL Server 中取得字段说明(转载)    
-- AND i_s.TABLE_NAME = 'table_name' 
SQL Server 中取得字段说明(转载)
ORDER BY 
SQL Server 中取得字段说明(转载)    i_s.TABLE_NAME, i_s.ORDINAL_POSITION
SQL Server 中取得字段说明(转载)
SQL Server 中取得字段说明(转载)

如果你只关心某一张表,那么上面的TSQL中的注释部份对你就非常有帮助。反过来就会给你所有表中的所有字段。

如果你只需要所有有说明的表,你可以把out join 改成 inner join
SQL Server 中取得字段说明(转载)SELECT 
SQL Server 中取得字段说明(转载)    
[Table Name] = i_s.TABLE_NAME, 
SQL Server 中取得字段说明(转载)    
[Column Name] = i_s.COLUMN_NAME, 
SQL Server 中取得字段说明(转载)    
[Description] = s.value 
SQL Server 中取得字段说明(转载)
FROM 
SQL Server 中取得字段说明(转载)    INFORMATION_SCHEMA.COLUMNS i_s 
SQL Server 中取得字段说明(转载)
INNER JOIN 
SQL Server 中取得字段说明(转载)    sysproperties s 
SQL Server 中取得字段说明(转载)
ON 
SQL Server 中取得字段说明(转载)    s.id 
= OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME) 
SQL Server 中取得字段说明(转载)    
AND s.smallid = i_s.ORDINAL_POSITION 
SQL Server 中取得字段说明(转载)    
AND s.name = 'MS_Description' 
SQL Server 中取得字段说明(转载)
WHERE 
SQL Server 中取得字段说明(转载)    
OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME), 'IsMsShipped')=0 
SQL Server 中取得字段说明(转载)
ORDER BY 
SQL Server 中取得字段说明(转载)    i_s.TABLE_NAME, i_s.ORDINAL_POSITION
SQL Server 中取得字段说明(转载)

SQL Server 2005

在SQL Server 2005 中 sysproperties 表已被废弃,所以上面的代码都不能用。幸运的是他们还是增加了一个系统表给我们 sys.extended_properties,这张表和 sysproperties基本上相似。

SQL Server 中取得字段说明(转载)SELECT 
SQL Server 中取得字段说明(转载)    
[Table Name] = OBJECT_NAME(c.object_id), 
SQL Server 中取得字段说明(转载)    
[Column Name] = c.name, 
SQL Server 中取得字段说明(转载)    
[Description] = ex.value 
SQL Server 中取得字段说明(转载)
FROM 
SQL Server 中取得字段说明(转载)    sys.columns c 
SQL Server 中取得字段说明(转载)
LEFT OUTER JOIN 
SQL Server 中取得字段说明(转载)    sys.extended_properties ex 
SQL Server 中取得字段说明(转载)
ON 
SQL Server 中取得字段说明(转载)    ex.major_id 
= c.object_id 
SQL Server 中取得字段说明(转载)    
AND ex.minor_id = c.column_id 
SQL Server 中取得字段说明(转载)    
AND ex.name = 'MS_Description' 
SQL Server 中取得字段说明(转载)
WHERE 
SQL Server 中取得字段说明(转载)    
OBJECTPROPERTY(c.object_id'IsMsShipped')=0 
SQL Server 中取得字段说明(转载)    
-- AND OBJECT_NAME(c.object_id) = 'your_table' 
SQL Server 中取得字段说明(转载)
ORDER 
SQL Server 中取得字段说明(转载)    
BY OBJECT_NAME(c.object_id), c.column_id
SQL Server 中取得字段说明(转载)

和SQL Server 2000一样,你可以使用注释部份来返回某一张表。
Microsoft Access
在Access中,你可以使用下面的ASP代码来得到某一个字段的说明


SQL Server 中取得字段说明(转载)<
SQL Server 中取得字段说明(转载)    
on error resume next 
SQL Server 中取得字段说明(转载)    
Set Catalog = CreateObject("ADOX.Catalog"
SQL Server 中取得字段说明(转载)    Catalog.ActiveConnection 
= "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
SQL Server 中取得字段说明(转载)        
"Data Source=<path>\<file>.mdb" 
SQL Server 中取得字段说明(转载)
SQL Server 中取得字段说明(转载)    dsc 
= Catalog.Tables("table_name").Columns("column_name").Properties("Description").Value 
SQL Server 中取得字段说明(转载)
SQL Server 中取得字段说明(转载)    
if err.number <> 0 then 
SQL Server 中取得字段说明(转载)        Response.Write 
"&lt;" & err.description & "&gt;" 
SQL Server 中取得字段说明(转载)    
else 
SQL Server 中取得字段说明(转载)        Response.Write 
"Description = " & dsc 
SQL Server 中取得字段说明(转载)    
end if 
SQL Server 中取得字段说明(转载)    
Set Catalog = nothing 
SQL Server 中取得字段说明(转载)%
>

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
  • 2021-11-02
  • 2022-12-23
猜你喜欢
  • 2021-09-15
  • 2022-02-13
  • 2021-08-06
  • 2021-10-25
相关资源
相似解决方案