簡體   English   中英

查詢以檢索數據庫中特定表的名稱並檢索該表的主鍵

[英]Query to retrieve the name of an specific table in database and retrive primary key of that table

我有一組名稱為“ Location”的表,例如locationbooks和locationareas。 我想編寫一個查詢,以首先從數據庫中檢索那些表名,然后獲取其主鍵。 我怎么做? [a_rahnema]。[dbo]是我的數據庫的名稱。

對於所有名稱中包含“位置”的表,此查詢將為您提供一個寬表,其中包括表名,主鍵名以及主鍵中的列:

select * from
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
        inner join
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
        on
            tc.CONSTRAINT_CATALOG = kcu.CONSTRAINT_CATALOG and
            tc.CONSTRAINT_SCHEMA = kcu.CONSTRAINT_SCHEMA and
            tc.CONSTRAINT_NAME = kcu.CONSTRAINT_NAME
where
    tc.CONSTRAINT_TYPE='PRIMARY KEY' and
    tc.TABLE_NAME like '%Location%'
order by
    tc.CONSTRAINT_CATALOG,
    tc.CONSTRAINT_SCHEMA,
    tc.CONSTRAINT_NAME,
    kcu.ORDINAL_POSITION

您可能想為實際查詢更多地限制列。


在編寫SQL時,建議您從整體結果集的角度考慮,並告訴引擎您想要什么 ,而不是如何去思考 因此,您通常不應該在考慮“首先我要執行此操作,然后再進行下一個操作,然后針對每個結果我要執行其他操作”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM