| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 978 人关注过本帖
标题:[求助]表的是否为主键在什么系统表里
只看楼主 加入收藏
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
 问题点数:0 回复次数:13 
[求助]表的是否为主键在什么系统表里
RT.
谢谢
搜索更多相关主题的帖子: 系统 表里 
2006-04-04 17:22
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
你问的是什么问题,没看懂

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2006-04-04 17:26
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
得分:0 
表的任何属性都存储在系统表中呀,
我现在就是问表主键在哪一张系统表ka
2006-04-04 17:28
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
sysobjects表内,xtype为PK的行就是主键情报

2006-04-04 17:45
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
得分:0 
呵呵..谢谢~~
等了半天了,终于高手来了
2006-04-04 17:53
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
,e不是高手。。。

刚才还在翻联机丛书来着,平时也就写点查询,做个sp,做做报表什么的。

2006-04-04 17:56
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
得分:0 
呵呵..谦虚了噻
顺便还问一下问题:
你写过将任意一张的结构查询出来.
像做设计时的数据字典.
我就是在写这东西.但是又遇到一问题了.
不知道问题出在哪里.
2006-04-04 18:08
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
你是指sp_help tablename?

2006-04-04 19:23
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
得分:0 

不呀,这个存储过程我以前就会.
它好像不能指定列名吧!
你看一下我写的吧,帮我改一下.谢谢
declare @objid int
declare @objname char(40)
select @objname = 'tablename'
select @objid = id from sysobjects where id=object_id(@objname)
select a.name as '列名',b.name as '数据类型',a.length as '长度',
(case when a.isnullable='1' then '是'else '否'end ) as '允许空'
from syscolumns a,systypes b where a.id = @objid and b.xtype in
(select xtype from syscolumns where id = @objid )
现在就要判断其主键了,我就不知道怎么判断了.

2006-04-05 09:01
LouisXIV
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:789
专家分:0
注 册:2006-1-5
收藏
得分:0 
SELECT
(case when a.colorder=1 then d.name else '' end) N'表名',
a.colorder N'字段序号',
a.name N'字段名',
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else ''
end) N'标识',
(case when (SELECT count(*)
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = a.id) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = a.id) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = a.id) AND (name = a.name))))))) AND
(xtype = 'PK'))>0 then '√' else '' end) N'主键',
b.name N'类型',
a.length N'占用字节数',
COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',
(case when a.isnullable=1 then '√'else '' end) N'允许空',
isnull(e.text,'') N'默认值',
isnull(g.[value],'') AS N'字段说明'
FROM syscolumns a
left join systypes b
on a.xtype=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
order by object_name(a.id),a.colorder
刚找的一段,凑合改改吧,应该是加个条件就可以了

[此贴子已经被作者于2006-4-6 13:07:56编辑过]


2006-04-06 13:05
快速回复:[求助]表的是否为主键在什么系统表里
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026173 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved