Sql Server按索引名查找所属表名

2014-11-24 02:57:14 · 作者: · 浏览: 5
引言:

我们在做较新的Java项目时,如果 数据库添加了索引,出错后,会在 Java侧捕获到这些异常信息。特别是数据库索引命名很“丑”的情况下,看着所报的“索引index_A(或者唯一索引index_A)冲突”,就只好一个个表猜着找。其实在sqlServer下,可以通过SQL语句直接用这个所报的索引名称“index_A”查出所属表。

正文:

sqlServer下,根据索引名查询所属表名,可以采用如下SQL语句:
Sql代码
--------------------------------------------
-- search the table name by an index name
--------------------------------------------

-- define the indexs name
DECLARE @index_name NVARCHAR(200)

-- set the index_name here
SET @index_name = NPK__FILE_TABLE_REL__208E6DA8;

SELECT o.name
FROM sys.objects o
WHERE o.object_id = (SELECT s.object_id
FROM sys.stats s
WHERE s.name = @index_name)

特别是在表很多的情况下,相当方便。