Sql Server按索引名查找所属表名
来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 11:57 点击:次
引言:
我们在做较新的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)
特别是在表很多的情况下,相当方便。
我们在做较新的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)
特别是在表很多的情况下,相当方便。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>