【发布时间】:2011-05-08 13:06:27
【问题描述】:
我正在尝试根据 SQL 2005 中条件的结果填充临时表。无论哪种方式,临时表都将具有相同的结构,但将根据条件使用不同的查询来填充。下面的简化示例脚本在 ELSE 块 INSERT INTO 的语法检查中失败,错误为:
已经有一个对象名为 数据库中的“#MyTestTable”。
DECLARE @Id int
SET @Id = 1
IF OBJECT_ID('tempdb..#MyTestTable') IS NOT NULL DROP TABLE #MyTestTable
IF (@Id = 2) BEGIN
SELECT 'ABC' AS Letters
INTO #MyTestTable;
END ELSE BEGIN
SELECT 'XYZ' AS Letters
INTO #MyTestTable;
END
我可以在IF/ELSE 语句之前创建临时表,然后在条件块中执行INSERT SELECT 语句,但是该表将有很多列,我试图提高效率。那是唯一的选择吗?或者有什么方法可以使这项工作?
谢谢, 马特
【问题讨论】:
标签: sql sql-server-2005 temp-tables insert-into