我已经搜索并没有发现任何关于它的信息(我相信这是不可能的)。我的问题是我必须检查是否存在临时表以及该临时表上是否有一些特定数据。
以前有人遇到过吗?你是如何设法解决的?我想避免创建数百万个IF..ELSE
块。
编辑:
IF (OBJECT_ID('tempdb..#tempTable') IS NOT NULL
AND EXISTS (SELECT * FROM #tempTable WHERE THIS_COLUMN = 'value'))
BEGIN
PRINT 'Temp table and data exists'
END
ELSE
BEGIN
PRINT 'Temp table or data does not exist'
END
这就是我想做的。当 tempTable 不存在(可能发生)时,问题就来了。它会抛出一个错误,因为虽然第一个语句返回 false,但它会继续执行第二个语句。并且该SELECT
语句无法找到该表,因此会引发错误。我找到的解决方案是这样做:
IF OBJECT_ID('#tempTable') IS NOT NULL
BEGIN
IF EXISTS (SELECT * FROM #tempTable WHERE THIS_COLUMN = 'value'
BEGIN
PRINT 'Temp table and data exists'
END
ELSE
BEGIN
PRINT 'Temp table exists but data does not exist'
END
END
ELSE
BEGIN
PRINT 'Temp table does not exist'
END
我的问题是,有没有办法有 2 个条件,如果第一个条件返回 false,不检查第二个条件?一种&&
在编程语言中使用。