19得票9回答
在If和Else块中使用SQL插入到临时表中

我想根据 SQL 2005 中的条件来填充一个临时表。这个临时表无论如何都会拥有相同的结构,但是根据条件不同将使用不同的查询来填充。下面是一个简化的脚本示例,在 ELSE 块的 INSERT INTO 语句中检查语法时出现以下错误: 数据库中已经存在名为 '#MyTestTable' ...

60得票2回答
在SQL中创建临时表

我正在尝试创建一个临时表,只选择特定 register_type 的数据。我编写了这个查询,但它没有起作用:$ CREATE TABLE temp1 (Select egauge.dataid, egauge.register_type, egauge.timesta...

15得票1回答
MySQL存储过程中创建的临时表的作用范围

问题已撤回!当我拼写一切正确时,问题消失了! 我有一个创建临时表的MySQL存储过程。当我从mysql提示符中调用该过程时,它似乎成功运行,但如果我然后从临时表中选择COUNT(*),我会收到一个错误,说该表不存在。 在存储过程内创建的临时表是否在存储过程结束时停止存在? mysql&g...

50得票10回答
使用sp_executeSql执行select...into #table语句,但无法查询到临时表数据。

尝试使用 sp_Executedsql 将结果选择到临时表 #TempTable 中。 无论其是否成功插入,都会有消息输出,如 (359 行记录受影响) ,这意味着插入成功吗? 以下是脚本:DECLARE @Sql NVARCHAR(MAX); SET @Sql = 'select disti...

9得票2回答
SQL Server,使用TRUNCATE的临时表 VS 使用DELETE的表变量

我有一个存储过程,在其中我创建了一个临时表,通常包含1到10行。在存储过程中,这个表被清空和填充多次。由于速度更快,它被截断而不是删除。 如果我使用表变量替换这个临时表,是否会获得性能提升,但要承受使用删除的惩罚(截断对表变量不起作用)?虽然表变量主要在内存中,通常比临时表快,但由于必须使用删...

8得票3回答
如何在TSQL中访问由存储过程调用生成的当前作用域内的数据集?

问题背景 生成和访问固定列布局的数据很容易。您可以预先创建本地临时表,并通过调用存储过程来填充它们。 另一方面,如果您想生成具有动态列布局的数据,则通常必须动态构建SQL语句,并使用“exec sp_executesql”执行它。由于数据布局在运行时未知,因此无法预先创建临时表,在“exe...

12得票1回答
在PostgreSQL中删除临时文件

我有一个大约800GB的数据库。当我尝试运行一个对某些变量进行分组并聚合结果的查询时,它在运行几个小时后停止了。Postgres提示磁盘空间已满。在查看统计数据后,我发现数据库有大约400GB的临时文件。我相信这些临时文件是在我运行查询时创建的。我的问题是如何删除这些临时文件。此外,我应该如何...

9得票1回答
SQL Server CTE自连接中引用导致速度变慢

我已经编写了一个表值 UDF,它以 CTE 开始,以返回来自大型表的行的子集。 CTE 中有几个联接。有一些内部联接和一个左联接到其他表,这些表中不包含很多行。 CTE 具有 where 子句,该子句返回日期范围内的行,以便仅返回所需的行。 然后,我在 4 个自连接左联接中引用此 CTE,以...

22得票2回答
在表值函数中使用临时表

我正在尝试在一个表值函数中使用临时表,但似乎无法实现。是否有其他方法可以在表值函数中使用临时表? 当前的代码:CREATE FUNCTION dbo.fnt_AllChildren (@ParentName VARCHAR(255)) RETURNS @return_variable TA...

8得票4回答
PostgreSQL在函数中使用EXECUTE时出现语法错误

我正在尝试创建一个引用PostgreSQL 8.4中临时表的函数。根据我的研究,似乎最好的方法是使用EXECUTE命令从定义的字符串执行查询。不幸的是,在尝试创建函数时,我遇到了奇怪的语法错误。我的当前函数定义如下: CREATE OR REPLACE FUNCTION example() ...