究竟是什么
select '' from TableA
办?
当我在给定的表格上运行它时,我会返回表格中所有行的记录,这些记录显然是空白的,标题是“#No;(无列名称)'因为没有使用别名。 我已经看到这个查询被用作子查询而不存在'语句。
此查询在什么时候有用,以这种方式查询是一种好习惯吗?
例如,当我第一次看到它时,我认为它会返回一个空白行,但实际上它会返回表中的所有行,并且它们是空白的。
我环顾四周,却找不到答案。 谢谢
答案 0 :(得分:2)
当检查表中是否存在某些内容时,通常选择任意值而不是实际列,因为它会对执行计划产生影响(如果选择实际列,则执行计划会将该列引入帐户,它可能需要更长的时间,即使您不使用该列)。
最常见的是,我看过1
:
IF EXISTS (SELECT 1 FROM MyTable WHERE SomeColumn > 10)
如果您只关心是否有任何行,您可以将查询短路而不是获取所有行...尽管我怀疑EXISTS
语句会在任何行中停止无论如何都发现了一行。
IF EXISTS (SELECT TOP 1 '' FROM TableA)
答案 1 :(得分:0)
如果您想出于任何原因添加静态值作为查询的一部分
,则可以使用此语法E.g。
SELECT
'SELECT TOP 10 * FROM '+name
from sys.objects
where type = 'U'
这将创建自动为数据库中的所有表创建查询