0

我正在部分基于另一个(非临时)表的结构创建一个临时表。我只需要结构,而不是数据。在我的研究中,我发现了 2 个 SELECT 语句可以满足我的需要:

SELECT ID, Field1 FROM Table1 (NOLOCK) WHERE 0=1

SELECT TOP (0) ID, Field1 FROM Table1 (NOLOCK)

性能差异可能可以忽略不计,但我想知道哪个 SELECT 更有效?

谢谢

编辑 1:我在 Windows NT 6.1 上使用 Microsoft SQL Server 2005 - 9.00.5057.00 (X64) 64 位(Build 7601:Service Pack 1)

编辑 2:两个语句的执行计划看起来完全一样,所以我猜测性能上是否存在差异,可以忽略不计。

4

1 回答 1

1

这两个查询都会进行持续扫描0 ms,因此您应该选择您和您的团队确定的更清晰易读的查询。在某些情况下,性能并不是最重要的因素,但应始终考虑可维护性。您应该使用它来指导您的决定。

根据我的个人喜好,我会选择:

SELECT TOP (0) ID, Field1 FROM Table1 (NOLOCK)

可以在这里找到演示这一点的sqlfiddle

于 2013-05-28T19:10:32.087 回答