gpt4 book ai didi

sql - 执行 sp_executeSql for select...into #table 但无法选择出临时表数据

转载 作者:行者123 更新时间:2023-12-03 08:10:42 24 4
gpt4 key购买 nike

试图选择...进入 sp_Executedsql 中的临时表 #TempTable。
不是它成功插入与否,但那里写的消息
(359 行受影响) 表示成功插入?
下面的脚本

DECLARE @Sql NVARCHAR(MAX);
SET @Sql = 'select distinct Coloum1,Coloum2 into #TempTable
from SPCTable with(nolock)
where Convert(varchar(10), Date_Tm, 120) Between @Date_From And @Date_To';

SET @Sql = 'DECLARE @Date_From VARCHAR(10);
DECLARE @Date_To VARCHAR(10);
SET @Date_From = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
SET @Date_To = '''+CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120)+''';
'+ @Sql;

EXECUTE sp_executesql @Sql;

执行后,它会返回消息(受影响的 359 行)。
接下来尝试从#TempTable 中选择数据时。
Select * From #TempTable;

它返回我:
Msg 208, Level 16, State 0, Line 2
Invalid object name '#TempTable'.

怀疑它仅适用于“选择”部分。插入不工作。
怎么修?

最佳答案

本地临时表 #table_name仅在当前 session 中可见,全局临时 ##table_name表在所有 session 中都可见。两者都存在,直到他们的 session 结束。sp_executesql - 创建自己的 session (也许“范围”这个词会更好),这就是它发生的原因。

关于sql - 执行 sp_executeSql for select...into #table 但无法选择出临时表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8040105/

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