对于即席查询,这确实是一个普遍的疑问。我们经常在开发和测试环境中运行即席查询,简单的查询如下:
SELECT *
FROM dbo.User
WHERE UserID = 2
是否有任何内置功能可以在WHERE
不明确定义列名的情况下在子句中使用主键。
在我看来,从逻辑上讲,由于表上只能有一个主键并且 SQL Server 知道这一点,因此您可以使用如下语法:
SELECT *
FROM dbo.User
WHERE PK = 3
WherePK
是 SQL Server 为表中存在的当前主键提供的通用术语。
这可能不存在的原因:
- 复合键怎么样,这对他们不起作用
- 您不会在生产查询中使用它
- 它只是真正的语法糖