有沒有將列名與索引所具有的列名進行匹配的方法。根據列名確定索引
因此,例如,讓我們說指數1使用列的姓名,年齡,地址和索引2使用(在同一個表)的姓名,年齡。(一切爲了一個特定的表)
如果我通過姓名,年齡和表名稱存儲過程,我應該寫什麼查詢哪些將返回我index2而不是index1。
我所遇到的如何列出列與像索引和表名的例子很多:
How can we check that table have index or not?
但仍然有問題,寫我的使用SQL查詢。
任何幫助將不勝感激,
謝謝
(這是針對Microsoft SQL Server 2008 - 2012)
這是我自己寫的,它並沒有正常,因此工作問題
select index1.name,sys.tables.name, Stuff((SELECT ',' + sys.columns.name AS [text()]
FROM
(
select sys.columns.name
from sys.columns
inner join sys.index_columns On sys.index_columns.index_column_id=sys.columns.column_id
inner join sys.indexes on sys.indexes.index_id=sys.index_columns.index_id
where sys.indexes.index_id=index1.index_id
) x
For XML PATH (''), type).value('(./text())[1]','NVARCHAR(MAX)'),1,1,'') As coLName
from sys.indexes as index1
inner join sys.tables on sys.tables.object_id=index1.object_id
inner join sys.index_columns On index1.index_id=sys.index_columns.index_id AND sys.index_columns.object_id = sys.tables.object_id
inner join sys.columns on sys.columns.column_id=sys.index_columns.column_id And sys.columns.object_id=sys.tables.object_id
where sys.tables.name=TABLE_NAME
您使用哪種RDBMS? – 2013-02-21 14:25:40
這是什麼SQL產品?與Keys不同,在SQL中,索引幾乎完全是特定於實現的,所以您必須知道您正在使用什麼類型的SQL來編寫類似這樣的內容。 – RBarryYoung 2013-02-21 14:26:33
對不起,這是用於Microsoft sql server 2008-2012 – sagar 2013-02-21 14:30:34