sql - SQL 中可能会出现奇怪的会话范围反转
问题描述
如何将 #temp 表中的数据插入作为 varchar 变量传递的永久表中?
我问的是相反的转移:
Declare @anytable varchar(99)='perma'
--insertexec
Insert into #temptablecreatedalready
Exec('select * from '+ @anytable)
解决方案
不要在查询字符串中单独添加选择,而是尝试整个插入。
Declare @anytable = 'perma'
EXEC(
'Insert into ' + @anytable + '
select * from #temptablecreatedalready')
确保#temptablecreatedalready
在执行查询字符串之前在当前会话中创建了表。
推荐阅读
- guice - 使用 Guice 和 lombok 时使用 picocli 生成文档
- django - 未找到“顶部”的反向。'topping' 不是有效的视图函数或模式名称
- activemq-artemis - 跨实例的 Apache ActiveMQ Artemis 消息转发问题
- amazon-web-services - 如何使用 Cloudformation for AWS Elasticache Redis 启用自动故障转移
- ios - 有没有一种方法可以停止流程,直到我从 Swift 中的 API 获得响应?
- c - 为什么我写的代码会出现分段错误?
- sql - 带有 sql 查询的 Polarion 小部件表
- php - CakePHP 4.0 可重用控制台(以前的任务)
- oracle - 基于带 Oracle 原生连接的变量 SSRS 的变量
- apache-spark - 名称中的日期时 Spark CSV 文件写入错误 - InvalidClassException:org.apache.commons.lang3.time.FastDateParser