我正在尝试根据 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
在条件块中执行语句,但是该表将有很多列,我试图提高效率。那是唯一的选择吗?或者有什么方法可以使这项工作?
谢谢,马特