怎样得到sybase创建主键数据库中表的主键信息

,请教怎么获取sybase数据库中各个表的大小? - Sybase当前位置:& &&&,请教怎么获取sybase数据库中各个表的大小?,请教怎么获取sybase数据库中各个表的大小?&&网友分享于:&&浏览:264次各位高手,请问如何获取sybase数据库中各个表的大小??如何列举出sybase数据库中所有表的大小并按从大到小的顺序排列,请各位高手指教,谢谢!------解决方案--------------------
name = o.name,
iname = i.name,
low = d.low,
rowtotal = 0,
reserved = convert(numeric(20, 9), 0),
data = convert(numeric(20, 9), i.doampg),
index_size = convert(numeric(20, 9), i.ioampg),
unused = convert(numeric(20, 9), 0)
into #pagecounts
from sysobjects o, sysindexes i, master.dbo.spt_values d
where o.id = i.id
and d.number = 1
and d.type =
update #pagecounts set
rowtotal = rowcnt(data),
reserved = convert(numeric(20, 9),
(reserved_pgs(id, data) +
reserved_pgs(id, index_size))),
data = convert(numeric(20, 9), data_pgs(id, data)),
index_size = convert(numeric(20, 9),
data_pgs(id, index_size)),
unused = convert(numeric(20, 9),
((reserved_pgs(id, data) +
reserved_pgs(id, index_size)) -
(data_pgs(id, data) +
data_pgs(id, index_size))))
name = convert(char(20), name),
rowtotal = convert(char(11), sum(rowtotal)),
reserved = convert(char(15), convert(varchar(11),
convert(numeric(11, 0), sum(reserved) *
(low / 1024))) +
data = convert(char(15), convert(varchar(11),convert(numeric(11, 0), sum(data) * (low / 1024)))
index_size = convert(char(15), convert(varchar(11),
convert(numeric(11, 0), sum(index_size) *
(low / 1024))) +
unused = convert(char(15), convert(varchar(11),
convert(numeric(11, 0), sum(unused) *
(low / 1024))) +
from #pagecounts
group by name
order by sum(data)+ sum(index_size) desc
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有Sybase数据库系统常用操作_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Sybase数据库系统常用操作
上传于|0|0|文档简介
&&sybase数据库系统常用操作
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩13页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢社区导航:&&&&&&&&&&&&&&&&&&&&&&&&&&&&
1&&/&&1&&页
跳转 0 ? parseInt(this.value) : 1) + '.aspx';}else{window.location='showtopic.aspx?topicid=80142&page=' + (parseInt(this.value) > 0 ? parseInt(this.value) : 1) ;}}"" size="4" maxlength="9"
class="colorblue2"/>页
怎样得到sybase数据库中表的主键信息
状态: 离线
怎样得到sybase数据库中表的主键信息
请问各位高人,不知道怎么能通过程序得到sybase数据库中表的主键信息啊?
积分:2829 分
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
select name from sysindexes where id& = object_id(&test& and indid &=1 and status & 2048得到主键名称察看sp_helpindex 存储过程,看看其中如何得到索引对应的列,这样可以得到所有索引的信息。
积分:2519 分
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
谢谢,非常感谢。那像SQL SERVER一样的吗?SQL ANYWHERE又如何?
积分:2534 分
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
SQL Server?是指MS SQL Server?这个我不太清楚,如果就MS SQL Server和Sybase的渊源而言,应该差不多。至于Sybase的SQL Anywhere,我不熟悉,不太清楚。
积分:2517 分
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
--查找系统中所有的表(含表的行数) SELECT USER_NAME(uid), O.name, rowcnt(doampg), S.name, creation = O.crdate, case sysstat2 & 57344 when 32768 then 'datarows' when 16384 then 'datapages' else 'allpages' end FROM sysobjects O, sysindexes I, syssegments S WHERE O.type = 'U' AND O.id=I.id AND I.indid IN (0,1) AND I.segment=S.segment AND O.type!='S' ORDER BY 1,2 --查找系统中所有的主键 SELECT USER_NAME(O.uid), OBJECT_NAME(I.id),I.name,S.name FROM sysindexes I,sysobjects O,syssegments S WHERE I.id=O.id AND I.status2 & 2 = 2 AND I.status & 2048 = 2048 AND I.indid&0 AND I.segment=S.segment ORDER BY USER_NAME(O.uid),OBJECT_NAME(I.id),I.name --查找系统中所有的索引 SELECT USER_NAME(O.uid),O.name,I.name, CASE WHEN ((I.status&16)=16 OR (I.status2&512)=512) THEN 'Clustered' WHEN (I.indid=255) THEN 'Text/Image' ELSE 'Non-Clustered' END, CASE WHEN ((I.status&2)=2) THEN 'Unique' ELSE 'Non-Unique' END, S.name FROM sysindexes I,syssegments S,sysobjects O WHERE I.indid&0 AND I.indid&255 AND I.status2 & 2!=2 AND I.segment=S.segment AND O.id=I.id AND O.type='U' AND O.type!='S' ORDER BY 1,2,3 --查找系统中所有表的外键 SELECT USER_NAME(O.uid),OBJECT_NAME(C.tableid),OBJECT_NAME(C.constrid) FROM sysconstraints C,sysobjects O WHERE C.constrid=O.id AND C.status=64 ORDER BY USER_NAME(O.uid),OBJECT_NAME(C.tableid),OBJECT_NAME(C.constrid)
积分:1748 分
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
--查看每个对象在某段上所占用的硬盘空间,每天查看, --可以生成各表、索引的增长速度图表,看看有无异常 或做其他诊断 --可以改造为系统过程 --本例为 default SELECT USER_NAME(O.uid), O.name, I.name, I.indid, STR(ROUND((RESERVED_PGS(I.id,doampg)+RESERVED_PGS(I.id,ioampg))*(.0),2),9,2)as Reserved, STR(ROUND(CONVERT(numeric(20,9),DATA_PGS(I.id,doampg))*(.0),2),9,2)as Data, STR(ROUND(CONVERT(numeric(20,9),DATA_PGS(I.id,ioampg))*(.0),2),9,2) as Index_1 , STR(ROUND(CONVERT(numeric(20,9),((RESERVED_PGS(I.id,doampg)+RESERVED_PGS(I.id,ioampg))-(DATA_PGS(I.id,doampg)+DATA_PGS(I.id,ioampg))))*(.0),2),9,2) as Unused , I.status,I.status2 FROM syssegments S,sysindexes I,sysobjects O WHERE S.name='default' AND I.id!=8 AND I.segment=S.segment AND I.id=O.id ORDER BY I.indid
积分:2571 分
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
-- 获取系统中正在执行transaction 的进程(ZT) dump tran sybsystemprocs with truncate_only go use sybsystemprocs go if exists (select * from sysobjects where name = &sp_opentran& and type = 'P') drop proc sp_opentran go create procedure sp_opentran as select spid, username=convert(varchar(12),suser_name(suid)), tran_name=convert(varchar(25),tran_name), dbname=convert(varchar(12),db_name(dbid)) from master..sysprocesses where tran_name & ' ' go if object_id('sp_opentran') is not null begin print '&&& Created procedure dbo.sp_opentran &&&' grant execute on dbo.sp_opentran to public end else begin print '&&& Failed creating proc dbo.sp_opentran &&&' end go
积分:2481 分
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
获取表名和对应的主键列select& tabname ,columnname from (& SELECT& object_name(id) tabname,& index_col( object_name(id) ,indid,1) columnname& FROM sysindexes&
WHERE status &
& & union & & SELECT& object_name(id),& index_col( object_name(id) ,indid,2)& FROM sysindexes& & WHERE status &
& & union& & SELECT& object_name(id),&
index_col( object_name(id) ,indid,3)& FROM sysindexes&
WHERE status &
& & union & & SELECT& object_name(id),& &
index_col( object_name(id) ,indid,4)& FROM sysindexes&
WHERE status &
& & union& & & select&
object_name(id),&
index_col( object_name(id) ,indid,5)& & FROM sysindexes&
WHERE status &
& & union & & SELECT& object_name(id),&
index_col( object_name(id) ,indid,6)&
FROM sysindexes& & WHERE status &
) pkwhere& columnname is not null
UID:104188
状态: 离线
回复:怎样得到sybase数据库中表的主键信息
不错,支持一下!
我们是北京最好的专业高端品牌外贸企业网站建设公司,同时提供网页设计服务,通过便宜的建网站报价。
UID:131845
积分:34 分
1&&/&&1&&页
跳转 0 ? parseInt(this.value) : 1) + '.aspx';}else{window.location='showtopic.aspx?topicid=80142&page=' + (parseInt(this.value) > 0 ? parseInt(this.value) : 1) ;}}"" size="4" maxlength="9"
class="colorblue2"/>页
论坛跳转...
企业IT安全 &&网络安全 &&信息安全 &&应用安全与管理网络技术 &&网络工程 &&网络管理 &&网络硬件 &&认证考试与培训存储技术 &&磁盘阵列 &&备份与容灾 &&SAN存储 &&厂商资料交流区服务器 &&x86服务器 &&服务器虚拟化 &&服务器操作系统数据中心 &&云计算 &&绿色数据中心 &&数据中心设计规划与选址 &&数据中心管理数据库技术 &&Oracle &&SQL Server &&IBM数据库产品 &&Sybase &&MySQL及开源数据库SOA &&SOA在中国 &&Web服务开发 &&SOA与IT治理CIO论坛 &&IT项目管理 &&企业IT战略规划 &&企业管理软件和策略 &&移动商务专区IT大家谈 &&IT职场人生 &&社区茶馆 &&TT活动查看: 2984|回复: 6
怎样得到sybase数据库中表的主键信息
论坛徽章:1
请问各位高人,
不知道怎么能通过程序得到sybase数据库中表的主键信息啊?
论坛徽章:47
select name from sysindexes where id&&= object_id(&test&quot and indid &=1 and status & 2048
得到主键名称
察看sp_helpindex 存储过程,看看其中如何得到索引对应的列,这样可以得到所有索引的信息。
论坛徽章:1
谢谢,非常感谢。那像SQL SERVER一样的吗?
SQL ANYWHERE又如何?
论坛徽章:47
SQL Server?是指MS SQL Server?这个我不太清楚,如果就MS SQL Server和Sybase的渊源而言,应该差不多。
至于Sybase的SQL Anywhere,我不熟悉,不太清楚。
论坛徽章:114
Re: 怎样得到sybase数据库中表的主键信息
最初由 black_chr 发布
[B]请问各位高人,
不知道怎么能通过程序得到sybase数据库中表的主键信息啊? [/B]
--查找系统中所有的表(含表的行数)
SELECT USER_NAME(uid),
rowcnt(doampg),
creation = O.crdate,
case sysstat2 & 57344
when 32768 then 'datarows'
when 16384 then 'datapages'
else 'allpages' end
FROM sysobjects O, sysindexes I, syssegments S
WHERE O.type = 'U' AND
O.id=I.id AND
I.indid IN (0,1) AND
I.segment=S.segment AND
O.type!='S'
ORDER BY 1,2
--查找系统中所有的主键
SELECT USER_NAME(O.uid), OBJECT_NAME(I.id),I.name,S.name
FROM sysindexes I,sysobjects O,syssegments S
WHERE I.id=O.id AND I.status2 & 2 = 2 AND
I.status & 2048 = 2048 AND
I.indid&0 AND I.segment=S.segment
ORDER BY USER_NAME(O.uid),OBJECT_NAME(I.id),I.name
--查找系统中所有的索引
SELECT USER_NAME(O.uid),O.name,I.name,
CASE WHEN ((I.status&16)=16 OR (I.status2&512)=512) THEN 'Clustered'
WHEN (I.indid=255) THEN 'Text/Image'
ELSE 'Non-Clustered' END,
CASE WHEN ((I.status&2)=2) THEN 'Unique'
ELSE 'Non-Unique' END, S.name
FROM sysindexes I,syssegments S,sysobjects O
WHERE I.indid&0 AND I.indid&255 AND I.status2 & 2!=2 AND
I.segment=S.segment AND O.id=I.id AND
O.type='U' AND O.type!='S' ORDER BY 1,2,3
--查找系统中所有表的外键
SELECT USER_NAME(O.uid),OBJECT_NAME(C.tableid),OBJECT_NAME(C.constrid)
FROM sysconstraints C,sysobjects O
WHERE C.constrid=O.id AND C.status=64
ORDER BY USER_NAME(O.uid),OBJECT_NAME(C.tableid),OBJECT_NAME(C.constrid)
论坛徽章:114
--查看每个对象在某段上所占用的硬盘空间,每天查看,
--可以生成各表、索引的增长速度图表,看看有无异常 或做其他诊断
--可以改造为系统过程
--本例为 default
SELECT USER_NAME(O.uid),
STR(ROUND((RESERVED_PGS(I.id,doampg)+RESERVED_PGS(I.id,ioampg))*(.0),2),9,2)as Reserved,
STR(ROUND(CONVERT(numeric(20,9),DATA_PGS(I.id,doampg))*(.0),2),9,2)as Data,
STR(ROUND(CONVERT(numeric(20,9),DATA_PGS(I.id,ioampg))*(.0),2),9,2) as Index_1 ,
STR(ROUND(CONVERT(numeric(20,9),((RESERVED_PGS(I.id,doampg)+RESERVED_PGS(I.id,ioampg))-(DATA_PGS(I.id,doampg)+DATA_PGS(I.id,ioampg))))*(.0),2),9,2) as Unused ,
I.status,I.status2
FROM syssegments S,sysindexes I,sysobjects O
WHERE S.name='default' AND I.id!=8 AND
I.segment=S.segment AND
ORDER BY I.indid
论坛徽章:114
-- 获取系统中正在执行transaction 的进程(ZT)
dump tran sybsystemprocs with truncate_only
use sybsystemprocs
if exists (select * from sysobjects where name = &sp_opentran& and type = 'P')
drop proc sp_opentran
create procedure sp_opentran
select spid, username=convert(varchar(12),suser_name(suid)),
tran_name=convert(varchar(25),tran_name),
dbname=convert(varchar(12),db_name(dbid))
from master..sysprocesses where tran_name & ' '
if object_id('sp_opentran') is not null
print '&&& Created procedure dbo.sp_opentran &&&'
grant execute on dbo.sp_opentran to public
print '&&& Failed creating proc dbo.sp_opentran &&&'
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号

我要回帖

更多关于 sybase 查询表主键 的文章

 

随机推荐