这应该很容易,但是由于某些原因,我无法正确获取SQL Server 2008的语法

如果表中有列,则我的变量必须为true,否则应为false。

截至目前,我有这个

DECLARE @LEHasSessions bit

set @LEhasSessions = ((SELECT COUNT(*) FROM @LEForSession) > 0)


显然没有编译。

语法应如何使其起作用?

最佳答案

SQL Server没有布尔数据类型。请改用CASE X THEN 1 ELSE 0

另外,最好在这里使用EXISTS而不是COUNT,这样它可以在读取第一行后停止处理(与对表中的所有行进行计数相反)。

SET @LEHasSessions = CASE
                       WHEN EXISTS(SELECT *
                                   FROM   @LEForSession) THEN 1
                       ELSE 0
                     END

08-25 12:18