更好的方法,而不是使用INFORMATION_SCHEMA.TABLE_CONSTRAINTS
问题描述:
我有以下查询哪些工作正常,并给我我后来的结果。它需要3秒钟才能返回结果,但我发现速度太慢。更好的方法,而不是使用INFORMATION_SCHEMA.TABLE_CONSTRAINTS
任何人都知道更好的方法?
SELECT
@PrimaryKey = ccu.Column_Name
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu on
tc.CONSTRAINT_NAME = ccu.Constraint_name
WHERE
tc.CONSTRAINT_TYPE = 'Primary Key' and
tc.Table_Name = @TableName
--tc.Table_Schema = 'LookUp'
答
我很惊讶,你的查询将需要很长时间,但你可以通过SQL Server目录视图相同的信息:
SELECT c.name
FROM sys.indexes AS i
JOIN sys.index_columns AS ic ON ic.object_id = i.object_id AND ic.index_id = i.index_id
JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
WHERE
i.is_primary_key = 1
AND i.object_id = OBJECT_ID(N'dbo.YourTable', 'U');
作为后续行动,这里的一对之间的权衡好文章'information_schema'和系统视图:http://sqlblog.com/blogs/aaron_bertrand/archive/2011/11/03/the-case-against-information-schema-views.aspx – Xedni
谢谢你们。 – Philip