[SQL]Oracle,SqlServer,根据表名获取主键列名

  Oracle:

@"select col.column_name , con.table_name

from all_constraints con,  all_cons_columns col 
where con.constraint_name = col.constraint_name 
and con.constraint_type='P' 

and upper(con.table_name) ='" + strTableName.ToUpper() + "'"


SqlServer:

@"select c.name,o.name
from sysindexes i
join sysindexkeys k on i.id = k.id and i.indid = k.indid
join sysobjects o on i.id = o.id
join syscolumns c on i.id=c.id and k.colid = c.colid
where o.xtype = 'U' 
and exists(select 1 from sysobjects where xtype = 'PK' and name = i.name) 
and o.name='" + strTableName + "'


其中,strTableName 为表名。查询该表的主键列名,同时也返回表名。

在Oracle中SQL语句,表名大小写敏感,所以全都转换为大写了。

这些语句应该不是最佳方案,望抛砖引玉。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值