博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
列出Database所有Key列或者获取表主键名称
阅读量:6476 次
发布时间:2019-06-23

本文共 898 字,大约阅读时间需要 2 分钟。

从 中用INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE 和INFORMATION_SCHEMA.TABLE_CONSTRAINTS两个视图INNER JOIN在一起,可以列出需要的数据,下面Insus.NET把它写成一个自定义函数:

ExpandedBlockStart.gif
udf_KeyColumns
CREATE 
FUNCTION 
[
dbo
].
[
udf_KeyColumns
] 
(  
)
RETURNS 
TABLE
AS
RETURN 
(
    
SELECT kcu.
[
TABLE_NAME
],kcu.
[
COLUMN_NAME
], kcu.
[
ORDINAL_POSITION
],tc.
[
CONSTRAINT_TYPE
]
    
FROM information_schema.key_column_usage 
AS kcu
    
INNER 
JOIN information_schema.table_constraints 
AS tc 
ON 
    (kcu.table_name 
= tc.table_name 
AND kcu.
[
constraint_name
] 
= kcu.
[
constraint_name
])
)

 

如果我们想获取某一个表的主键名称,可以写一个存储过程:

ExpandedBlockStart.gif
usp_PrimaryKey
CREATE 
PROCEDURE 
[
dbo
].
[
usp_PrimaryKey
] (  
    
@TableName SYSNAME
)
AS
    
DECLARE 
@ReturnValue 
NVARCHAR(
MAX)
    
SELECT 
@ReturnValue 
= 
[
COLUMN_NAME
] 
FROM 
[
dbo
].
[
udf_KeyColumns
]() 
    
WHERE 
[
CONSTRAINT_TYPE
] 
= 
'
PRIMARY KEY
' 
AND 
[
TABLE_NAME
] 
= 
@TableName 
    
SELECT  
@ReturnValue

 

引用存储过程:

EXECUTE 
[
dbo
].
[
usp_PrimaryKey
] 
'Member
'

 

参考相关:

 

转载地址:http://ddmko.baihongyu.com/

你可能感兴趣的文章
反射获取内部类以及调用内部类方法
查看>>
App里面如何正确显示用户头像
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
Picasa生成图片幻灯片页面图文教程
查看>>
js获取当前时间的前一天/后一天
查看>>
svn status 显示 ~xx
查看>>
常用HiveQL总结
查看>>
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>
POJ 3311 Hie with the Pie(状压DP + Floyd)
查看>>
Security updates and resources
查看>>
深入理解JavaScript系列(25):设计模式之单例模式
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
leveldb学习:DBimpl
查看>>