想取得表中的Master Key的情况

addle_head 2001-11-03 11:25:36
想取得表中的Master Key的情况:

if 此字段是Master Key then
万岁!!!

else 检查下一个字段


不知道要检查recordset中的哪个属性可以得到一个字段是否是主键的情报.

问题很蔡,大家不要见笑.

...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
昵称被占用了 2001-11-03
  • 打赏
  • 举报
回复
如果是SQLSERVER,研究一下系统表,可以得出主键的字段的.
以前做过,想不起来了.
addle_head 2001-11-03
  • 打赏
  • 举报
回复
谢谢蓝色和大家!

bluepower2008 2001-11-03
  • 打赏
  • 举报
回复
如果是sqlserver,可以告诉你一种得到表中主键字段名的sql语句,在取到字段名后,再通过比较recordset的字段名来判断是否主键。
select index_col('YOURTABLE',indid,1) from sysindexes where id = object_id('YOURTABLE') and (status & 2048) <> 0
注意:如果是多字段的PK,请使用存储过程,通过判断index_col('YOURTABLE',indid,i)是否为NULL来确定循环是否结束。
YOURTABLE是你的表的名字。
昵称被占用了 2001-11-03
  • 打赏
  • 举报
回复
找到了,用
sp_MShelpindex '表名' 查询,在结果里找 (status & 0x800)=0x800的记录,这条记录的
IndCol1,IndCol2,IndCol3 ......就是主键的字段名.
addle_head 2001-11-03
  • 打赏
  • 举报
回复
我用的是SQL SERVER 7.0
昵称被占用了 2001-11-03
  • 打赏
  • 举报
回复
说一下你的DBMS
addle_head 2001-11-03
  • 打赏
  • 举报
回复
补充一下,以上语句是使用在VB5.0的环境中.
addle_head 2001-11-03
  • 打赏
  • 举报
回复
用这个语句可以查询到数据库中说有的PK名称,但不知道怎么可以把他们从自己所需要的表中分离出来(也就是说分离得到指定表中的PK)

Dim myRecordset As ADODB.recordset

myRecordset = myRecordset.OpenSchema(adSchemaTableContrains, Array
(Emty,Emty,Emty,Emty))


大家给点意见好吗?很着急,周一要出活不然要被吊起来毒打.




34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧