使用SQL Server 2005执行以下语句(我的测试是通过SSMS)导致第一次执行时成功并且在后续执行时失败。选择非失败列失败
IF OBJECT_ID('tempdb..#test') IS NULL
CREATE TABLE #test (GoodColumn INT)
IF 1 = 0
SELECT BadColumn
FROM #test
这意味着有些事情是比较我在我的select语句访问对表上存在的脚本“编译”当列的列。为我的目的,这是不受欢迎的功能。我的问题是,是否有任何可以完成的工作,以便在每次运行中都能成功执行此代码,或者如果这是不可能的,也许有人可以解释为什么演示功能是可取的。我目前唯一的解决方案是用EXEC或选择*来包装选择,但我不喜欢那些解决方案。
感谢
我在SQL尝试这两种解决方案都和失败,“无效的列名称BadColumn“。“ – 2009-08-29 06:30:40
如果临时对象不存在,那么我可以创建这个dbo.test proc,并重复运行它。如果临时对象存在,那么你会得到错误。 – 2009-08-29 07:06:33
+1为好的解释。表格表示无法找到BadCOlumn,“延迟名称解析”适用于以后的使用。 – gbn 2009-08-29 08:32:17