rei*_*ein 48 sql t-sql sql-server primary-key
我想使用TSQL确定表的主键(存储过程或系统表很好).SQL Server(2005或2008)中是否存在这样的机制?
Stu*_*rth 70
这应该让你开始:
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON tc.CONSTRAINT_NAME = ccu.Constraint_name
WHERE tc.TABLE_NAME = 'TableName' and tc.CONSTRAINT_TYPE = 'Primary Key'
Run Code Online (Sandbox Code Playgroud)
Phi*_*ley 21
这是一个基于SQL 2005的系统表(99%肯定它在2008年工作).这将列出所有用户定义的表的所有PK,所有列和一些可以删除的额外的绒毛.添加参数以一次挑选一个表.
SELECT
schema_name(ta.schema_id) SchemaName
,ta.name TableName
,ind.name
,indcol.key_ordinal Ord
,col.name ColumnName
,ind.type_desc
,ind.fill_factor
from sys.tables ta
inner join sys.indexes ind
on ind.object_id = ta.object_id
inner join sys.index_columns indcol
on indcol.object_id = ta.object_id
and indcol.index_id = ind.index_id
inner join sys.columns col
on col.object_id = ta.object_id
and col.column_id = indcol.column_id
where ind.is_primary_key = 1
order by
ta.name
,indcol.key_ordinal
Run Code Online (Sandbox Code Playgroud)
Luk*_*keH 18
SELECT ccu.COLUMN_NAME, ccu.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
ON tc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME
WHERE tc.TABLE_CATALOG = 'Your_Catalog' -- replace with your catalog
AND tc.TABLE_SCHEMA = 'dbo' -- replace with your schema
AND tc.TABLE_NAME = 'Your_Table' -- replace with your table name
AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
Run Code Online (Sandbox Code Playgroud)
exec [sys].[sp_primary_keys_rowset] @table_name= 'TableName'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55673 次 |
| 最近记录: |