转自:http://hi.baidu.com/kangasp/blog/item/06e51108c7e158d962d986d8.html
1.获取表的基本字段属性
--
获取SqlServer中表结构
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,
syscolumns.length
FROM syscolumns, systypes
WHERE syscolumns.xusertype = systypes.xusertype
AND syscolumns.id = object_id ( ' 你的表名 ' )
SELECT syscolumns.name,systypes.name,syscolumns.isnullable,
syscolumns.length
FROM syscolumns, systypes
WHERE syscolumns.xusertype = systypes.xusertype
AND syscolumns.id = object_id ( ' 你的表名 ' )
运行效果
2.如果还想要获取字段的描述信息则
--
获取SqlServer中表结构 主键,及描述
declare @table_name as varchar ( max )
set @table_name = ' 你的表名 '
select sys.columns.name, sys.types.name, sys.columns.max_length, sys.columns.is_nullable,
( select count ( * ) from sys.identity_columns where sys.identity_columns. object_id = sys.columns. object_id and sys.columns.column_id = sys.identity_columns.column_id) as is_identity ,
( select value from sys.extended_properties where sys.extended_properties.major_id = sys.columns. object_id and sys.extended_properties.minor_id = sys.columns.column_id) as description
from sys.columns, sys.tables, sys.types where sys.columns. object_id = sys.tables. object_id and sys.columns.system_type_id = sys.types.system_type_id and sys.tables.name = @table_name order by sys.columns.column_id
declare @table_name as varchar ( max )
set @table_name = ' 你的表名 '
select sys.columns.name, sys.types.name, sys.columns.max_length, sys.columns.is_nullable,
( select count ( * ) from sys.identity_columns where sys.identity_columns. object_id = sys.columns. object_id and sys.columns.column_id = sys.identity_columns.column_id) as is_identity ,
( select value from sys.extended_properties where sys.extended_properties.major_id = sys.columns. object_id and sys.extended_properties.minor_id = sys.columns.column_id) as description
from sys.columns, sys.tables, sys.types where sys.columns. object_id = sys.tables. object_id and sys.columns.system_type_id = sys.types.system_type_id and sys.tables.name = @table_name order by sys.columns.column_id
运行效果
3.单独查询表的递增字段
--
单独查询表递增字段
select [ name ] from syscolumns where
id = object_id (N ' 你的表名 ' ) and COLUMNPROPERTY (id,name, ' IsIdentity ' ) = 1
select [ name ] from syscolumns where
id = object_id (N ' 你的表名 ' ) and COLUMNPROPERTY (id,name, ' IsIdentity ' ) = 1
运行效果
4.获取表的主外键
--
获取表主外键约束
exec sp_helpconstraint ' 你的表名 ' ;
运行效果
exec sp_helpconstraint ' 你的表名 ' ;
SQL Server表描述 及 字段描述的增、删、改、查询
--创建表及描述信息 create table 表(a1 varchar(10),a2 char(2)) --为表添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '人员信息表', N'user', N'dbo', N'table', N'表', NULL, NULL --为字段a1添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N'table', N'表', N'column', N'a1' --为字段a2添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '性别', N'user', N'dbo', N'table', N'表', N'column', N'a2' --更新表中列a1的描述属性: EXEC sp_updateextendedproperty 'MS_Description','字段1','user',dbo,'table','表','column',a1 --删除表中列a1的描述属性: EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','表','column',a1 --删除测试 drop table 表 至于查询出来,sql server有提供系统函数fn_listextendedproperty (): --获取某一个字段的描述 SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', '表名', 'column', default)--其他变数,按照你的要求你照写即可,只要表名换成你的 where objname = '字段名' EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'城市名称' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'tbl_City', @level2type=N'COLUMN', @level2name=N'cCity_Name'