sql server查找表主键的多种方式
test表结构1.利用存储过程查出表明和主键名exec sp_pkeys 'test'2.存储在临时表或变量中方法一存储在变量BEGINDeclare @tablevar table(TABLE_QUALIFIER varchar(10) null,TABLE_OWNER varchar(10) null,TABLE_NAMEvarchar(10) null,COLUMN_NAME varchar
·
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'))
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献4条内容
所有评论(0)