gpt4 book ai didi

SQL 在 If 和 Else block 中插入临时表

转载 作者:行者123 更新时间:2023-12-04 00:48:42 25 4
gpt4 key购买 nike

我正在尝试根据 SQL 2005 中的条件结果填充临时表。无论哪种方式,临时表都将具有相同的结构,但将根据条件使用不同的查询进行填充。下面的简化示例脚本在 ELSE 的语法检查中失败区块INSERT INTO错误如下:

There is already an object named '#MyTestTable' in the database.


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

谢谢,
马特

最佳答案

回答晚了 8 年,但我很惊讶没有人想到:

select * into #MyTempTable from...
where 1=2

IF -- CONDITION HERE
insert into #MyTempTable select...
ELSE
insert into #MyTempTable select...

简单,快速,而且有效。不需要动态sql

关于SQL 在 If 和 Else block 中插入临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4155996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com