【发布时间】:2018-04-22 04:29:37
【问题描述】:
在 SQL Server 中,我得到了一些具有多列主键的表。我使用此查询来获取表中主键的列:
SELECT *
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS Tab,
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE Col
WHERE
Col.Constraint_Name = Tab.Constraint_Name
AND Col.Table_Name = Tab.Table_Name
AND Constraint_Type = 'PRIMARY KEY'
AND Col.Table_Name = 'Code Field Information'
此查询返回三列,即主键的成员。但是当我在表“代码字段信息”中执行查询时,没有 Order 子句,结果中的排序与上面的查询不同。是否可以按排序优先级顺序获取主键的列?
【问题讨论】:
-
今日提示:切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。 -
列,而不是字段。
-
你想
ORDER BY?如果是这种情况,您可以将ORDER BY <columnname> ASC按升序排序或将DESC按降序排序。 -
如果不使用“Order”,SQL 不保证对结果进行排序。我的意思是,相同的查询可以在不同的时间以不同的顺序返回结果。
标签: sql sql-server tsql constraints information-schema