sql - 插入同一张表的 SQL IF 语句
问题描述
我需要根据我们接收数据的方式查询存储在两个不同 SQL 模式中的数据集。我创建了两个查询来查看数据集 1 和数据集 2,并将该数据格式化为两个单独的临时表(格式相同)。
我现在正在尝试执行第二步,即确定已填充哪个临时表,将这些数据放入一个新的临时表中,以便继续执行第 3 步。
为此,我正在尝试创建一个 IF 语句来计算我们收到的数据集,但似乎无法使查询工作(即使我已经从其他人的类似查询中看到了解决方案)。
这是我的代码:
IF object_id('tempdb..#Final_Prem') IS NOT NULL
BEGIN
DROP TABLE #Final_Prem
END
DECLARE @Command varchar(500)
DECLARE @DS1 AS FLOAT
DECLARE @DS2 AS FLOAT
SET @DS1 = (SELECT SUM(PREM) FROM #Dataset1 )
SET @DS2 = (SELECT SUM(PREM) FROM #Dataset2 )
IF (@DS1 IS NULL OR @DS1 = 0)
BEGIN
SET @Command = 'SELECT * INTO #Final_Prem FROM #Dataset2'
END ELSE BEGIN
SET @Command = 'SELECT * INTO #Final_Prem FROM #Dataset1'
END
EXECUTE (@Command)
SELECT * FROM #Final_Prem
我不断收到的错误是
消息 208,级别 16,状态 0,第 18 行
无效的对象名称“#Final_Prem”
任何帮助将不胜感激,谢谢
解决方案
您不能在动态查询中使用单哈希表。运行动态查询的会话与外部会话不同,因此无法访问它。
如果您确定每次都会运行一次 proc/query,则可以将 # 表更改为 ##table。
如果要同时使用动态 sql 和并发运行,可以将 @@SPID 保存到变量中,并在 ## 表名的末尾使用它。
推荐阅读
- javascript - 如何将 Material UI Props 中的 TextfieldProps 用于 React 应用程序?
- maven - 如何在 maven 项目中添加 groovy 3.0.3 作为 maven 依赖项?
- python - tf.keras - 仅将特定层应用于特定功能
- ios - 如何从 SwiftUI 中的结构返回值?
- javascript - 请求太重时出现 NodeJS CORS 错误(文件上传)
- python - 如何从容器类型中区分函数类型?
- javascript - 莉莉的作业——hackerrank挑战javascript
- powershell - 使用 selenium chrome 驱动程序下载 .xml 文件
- javascript - JS:异步函数隐含地解开承诺?
- domain-driven-design - C# DDD:更改篮子项目数量(如果可用)