sql server查找表主键的多种方式

test表结构
在这里插入图片描述
方法一

SELECT
	TABLE_NAME,
	COLUMN_NAME
FROM
	INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_NAME ='test'

结果:
在这里插入图片描述
方法二
1.利用存储过程查出表明和主键名

 exec sp_pkeys 'test'

在这里插入图片描述
2.存储在临时表或变量中
方法一存储在变量

BEGIN
Declare @tablevar table(
TABLE_QUALIFIER varchar(10) null, 
TABLE_OWNER varchar(10) null, 
TABLE_NAME  varchar(10) null, 
COLUMN_NAME varchar(10) null, 
KEY_SEQ varchar(10) null,  
PK_NAME varchar(50) null) ;
insert into @tablevar exec sp_pkeys 'test' ;
SELECT TABLE_NAME, COLUMN_NAME FROM  @tablevar ;
END

方法三存储在临时表

create  table #tab(
TABLE_QUALIFIER varchar(10), 
TABLE_OWNER varchar(10), 
TABLE_NAME  varchar(10), 
COLUMN_NAME varchar(10), 
KEY_SEQ varchar(10),  
PK_NAME varchar(50), 
)
insert into #tab EXEC sp_pkeys @table_name='test'
SELECT TABLE_NAME, COLUMN_NAME FROM #tab

在这里插入图片描述
方法四(方法一变种,返回主键用连接符连接)

SELECT distinct
	TABLE_NAME,
	COLUMN_NAME=stuff((
		SELECT '|'+COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
		where TABLE_NAME ='test'
    FOR XML path('')
    ), 1, 1, '')
FROM
	INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_NAME ='test'

结果
在这里插入图片描述

其他方法

--只能查到主键名
SELECT name FROM syscolumns WHERE id=Object_Id('test') and colid IN(SELECT keyno from sysindexkeys WHERE id=Object_Id('test'))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值