xiao84876525 发表于 2024-3-8 15:18:31

服务端执行SQL,生成一个全局临时表,在另一个服务端命令里能调用它吗?

本帖最后由 xiao84876525 于 2024-3-8 15:20 编辑

在同一个页面内,请问服务端命令1,执行SQL,生成一个全局临时表##t1,在另一个服务端命令2,里能调用##t1吗?

小年糕 发表于 2024-3-8 15:18:32

可以啊

服务端命令1,执行Sql命令,创建一个tempTable的临时表,如下图

服务端命令2,使用执行Sql获取一下,返回的是个数组数据,可以使用循环命令,循环每一行,再获取结果





Simon.Sun 发表于 2024-3-8 17:21:54

感谢小年糕大佬的支持!
如果您的问题已解决,请及时更新帖子的状态为“已处理”,并设置最佳答案给有帮助到你的回复;
如果您的问题还未解决,欢迎跟帖补充;
如果您有新的问题,也欢迎创建新的求助帖呦。

xiao84876525 发表于 2024-3-11 11:55:46

小年糕 发表于 2024-3-8 15:18
可以啊

服务端命令1,执行Sql命令,创建一个tempTable的临时表,如下图


if object_id('tempdb..##t2') is not null Begindrop table ##t2   是不是不能用这个语句创建全局临时表

小年糕 发表于 2024-3-11 13:36:44

xiao84876525 发表于 2024-3-11 11:55
if object_id('tempdb..##t2') is not null Begindrop table ##t2   是不是不能用这个语句创建全局临时 ...
哪个数据库?内建库?sqlserver?mysql?
你是想如果已经有此表,就先删除,再创建,是吧?

Simon.Sun 发表于 2024-3-11 17:49:03

本帖最后由 Simon.Sun 于 2024-3-11 17:50 编辑

感谢大佬的支持。
您那边具体是遇到什么问题了吗。
正常来说,您使用数据库对应的 DDL 语句创建删除表就可以了,执行 SQL 命令也可以执行的。
如果是先删除表,再创建表,比如说 SQL Server:
IF EXISTS (
SELECT
    *
FROM
    sys.objects
WHERE
    object_id = OBJECT_ID(N'A_CMD')
    AND
type in (N'U')
) BEGIN
DROP TABLE A_CMD END
CREATE TABLE
A_CMD
(
    A_NO VARCHAR(5) NOT NULL,
    CREATED_BY VARCHAR(30),
    CREATION_DATE DATETIME DEFAULT GETDATE()
);


CREATE UNIQUE
INDEX A_CMD_UNI_IDX ON A_CMD (A_NO);
SQL Server数据库已存在表,如何判断删除表后再重建的方法_sqlserver中删除表后重建的-CSDN博客
还有就是,执行SQL命令时,记得把这里的内建库选择为对应的外联库:

xiao84876525 发表于 2024-3-13 11:28:00

小年糕 发表于 2024-3-11 13:36
哪个数据库?内建库?sqlserver?mysql?
你是想如果已经有此表,就先删除,再创建,是吧?

SqlServer的服务器,外联库,是的,如果已经有此表,就先删除,再创建,但我用这个if object_id('tempdb..##t2') is not null Begindrop table ##t2好像不行,

jcy123 发表于 2024-3-13 11:41:45

xiao84876525 发表于 2024-3-13 11:28
SqlServer的服务器,外联库,是的,如果已经有此表,就先删除,再创建,但我用这个if object_id('tempdb. ...

少了个END,有一个begin就得有一个end

Simon.Sun 发表于 2024-3-13 16:22:59

感谢大佬的支持,您参考大佬的建议,加上 end 尝试下能否解决您的问题。
页: [1]
查看完整版本: 服务端执行SQL,生成一个全局临时表,在另一个服务端命令里能调用它吗?