我想根据 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
语句,但该表将具有许多列,我试图使其更有效率。那是唯一的选择吗?还是有其他方法可以实现这个目的?
谢谢, Matt