在写系统概要设计时,需要展示数据结构(表名和扩展属性)。为了操作方便,创建了一张临时表输出表名和扩展属性
/**查询数据库中表名和扩展属性值**/
--
临时表用来存表名和扩展属性值
if exists(
select*
from tempdb..sysobjects
where id=OBJECT_ID(
'tempdb..#temp'))
drop table #temp
go
create table #temp
(
name varchar(1000),
value varchar(1000)
)
go
--
用游标把数据中的表名和扩展属性查询出来 并插入到临时表中
declare @name varchar(100)
declare @value varchar(100)
declare select_proterty cursor for (
select name
from sysobjects
where xtype=
'U')
open select_proterty
fetch next from select_proterty into @name
while @@fetch_status=
0
begin
select @value=CAST(value
as varchar)
from sys.fn_listextendedproperty
(default,
'schema',
'dbo',
'table', @name,
null,
null)
insert into #temp values(@name,@value)
fetch next from select_proterty into @name
end
select *
from #temp
close select_proterty
deallocate select_proterty
go 二
select b.[value]
from sys.columns a left join sys.extended_properties b on a.object_id=
b.major_id
and a.column_id=b.minor_id inner join sysobjects c on a.column_id=
c.id
and a.[name]=
'列名' and c.[name]=
'表名'
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 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 sys.extended_properties g on a.id=g.major_id and a.colid=
g.minor_id
left join sys.extended_properties f on d.id=f.major_id and f.minor_id=
0
where d.name=
'QB_Exam'
order by a.id,a.colorder
转载于:https://www.cnblogs.com/ybyi/p/3422987.html