[英]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.