sql查询字段属性
1. sql server 怎么查询数据字段说明
SQL Server的注释属于扩展属性,可以从sys.extended_properties视图中查看
SELECT * FROM sys.extended_properties WHERE major_id=OBJECT_ID('WMSBASCUS')
结果是WMSBASCUS表所有列的注释信息
minor_id是列的Id,可以从sys.columns中查看表的列id
通过sys.extended_properties和sys.columns进行关联可以查看某个具体列的信息
SELECT c.name,p.value
FROM sys.extended_properties p ,sys.columns c
WHERE p.major_id=OBJECT_ID('WMSBASCUS') and c.name='CUSTNO'
and p.major_id=c.object_id and p.minor_id=c.column_id
2. SQL查询字段的说明
查出表的各个字段的所有属性
SELECT
表名 = case when a.colorder=1 then d.name else '' end,
表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号 = a.colorder,
字段名 = a.name,
标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end,
类型 = b.name,
占用字节数 = a.length,
长度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空 = case when a.isnullable=1 then '√'else '' end,
默认值 = isnull(e.text,''),
字段说明 = isnull(g.[value],'')
FROM
syscolumns a
left join
systypes b
on
a.xusertype=b.xusertype
inner join
sysobjects d
on
a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join
syscomments e
on
a.cdefault=e.id
left join
sysproperties g
on
a.id=g.id and a.colid=g.smallid
left join
sysproperties f
on
d.id=f.id and f.smallid=0
where
d.name='要查询的表' --如果只查询指定表,加上此条件
order by
a.id,a.colorder
3. 如何查询sql server表字段类型
可用两种方法,一种是在Microsoft SQL Server Manager Studio中的图形界面查询,另一种是语句查询。
方法1:
1、使用Microsoft SQL Server Manager Studio登录数据库。
2、在左边树找到要查的表,并点击前边的“+”
4. sql 如何查询包含某一字段的值
这种情况需要写存储过程,进行全库搜索。代码如下:
declare@cloumnsvarchar(40)
declare@tablenamevarchar(40)
declare@strvarchar(40)
declare@countsint
declare@sqlnvarchar(2000)
declareMyCursorCursorFor
Selecta.nameasColumns,b.,sysobjectsb,systypesc
wherea.id=b.id
andb.type='U'
anda.xtype=c.xtype
andc.namelike'%varchar%'
set@str='张三'
OpenMyCursor
FetchnextFromMyCursorInto@cloumns,@tablename
While(@@Fetch_Status=0)
Begin
set@sql='select@tmp_counts=count(*)from'+@tablename+'where'+@cloumns+'='''+@str+''''
executesp_executesql@sql,N'@tmp_countsintout',@countsout
if@counts>0
begin
print'表名为:'+@tablename+',字段名为'+@cloumns
end
FetchnextFromMyCursorInto@cloumns,@tablename
End
CloseMyCursor
DeallocateMyCursor
注意:其中“张三”为要查找的字符串,可以替换成其他的,如果查询的字符串超长,需要在定义变量时适当扩大长度。
可以替换成其他的,如果查询的字符串超长,需要在定义变量时适当扩大长度。
5. sql如何查某个表某个字段的数据类型
select a.name as [column],b.name as type
from syscolumns a,systypes b
where a.id=object_id('表名') and a.xtype=b.xtype and a.name='列名'