temp-tables相关内容

普通表还是全局临时表?

我和另一位开发人员正在讨论哪种类型的表格更适合我们的任务.它基本上将成为我们将在一天结束时截断的缓存.就个人而言,我认为没有任何理由为此使用普通表以外的任何其他东西,但他想使用全局临时表. 两者有什么优势吗? 解决方案 在 tempdb 中使用普通表,如果这只是临时数据,您可以承受在服务重启或用户数据库时丢失数据不是那么短暂. tempdb 在日志记录要求方面稍微更有效. ..
发布时间:2021-09-05 18:31:54 数据库

从 CLR 存储过程访问 TSQL 创建的 #temp 表.是否可以?

我有一个 TSQL 存储过程 tsql__sp__A,它可以做两件事: (a) 创建一个临时表 #tempTable,其中包含来自复杂 SELECT 查询的 SELECT 数据. (b) 为对行参数进行计算的每一行调用 CLR 托管存储过程 clr__sp__B. 问题:是否可以使用相同的连接上下文从 CLR 过程 clr__sp__B 访问 #tempTable?(不,我不想在 ..
发布时间:2021-09-05 18:31:52 其他开发

如何将 RESTORE FILELISTONLY/HEADERONLY/VERIFYONLY 提供的信息插入到临时表中

如何插入命令给出的结果集 仅恢复文件列表恢复正常仅恢复验证 进入自动生成的临时表? 我想使用类似于(因此表是自动创建的,所有列都与结果集的列匹配)类似的技术 SELECT * INTO #TempTable从(从磁盘恢复文件列表 = 'c:\Test\Test.bak') 但这行不通.如果我可以填充一个 TempTable,我就可以在下面的 SQL 语句中使用其中包含的信息(在我的例 ..
发布时间:2021-09-05 18:31:49 数据库

查找临时表的列名

我需要找到临时表的列名. 如果它是一个物理表,那么我们可以使用 sys.columns 或 Information_schema.columns 系统视图来查找列名. 类似地,有没有办法找到临时表中存在的列名? 解决方案 SELECT *从 tempdb.sys.columnsWHERE object_id = Object_id('tempdb..#sometemptable ..
发布时间:2021-09-05 18:31:46 数据库

临时表上的聚集索引

我正在尝试优化具有如下代码的过程: CREATE TABLE #t1 (c1 int, c2 varchar(20), c3(varchar(50)...)创建集群索引 ix_t1 ON #t1(c3) ON [PRIMARY] 我想通过将 CLUSTERED 索引移到表声明中来改进这一点(更适合缓存),但是 c3 不是唯一的,所以这不起作用: CREATE TABLE #t1 (c1 in ..
发布时间:2021-09-05 18:31:40 数据库

在 SQL 中将一行值移动到另一行

我目前有一个这样的临时表 DBName API50 CounterValue空 空 1测试 1 34.5 NULL空 空 2测试 1 38.5 NULL 我想要一个脚本来制作我的临时表 DBName API50 CounterValue测试 1 34.5 1测试 1 38.5 2 解决方案 如果你的表有主键,并且你总是想将 CounterValue 字段与表中的下一个字段关联,你可以做一 ..
发布时间:2021-09-05 18:31:34 其他开发

为什么从自联接临时表更新真实表不起作用,但在使用真实表时它起作用?

场景如下: 过程 1 创建临时表 #t. 过程 1 执行过程 2. 过程 2 填充 #t. 在过程 1 中,我从 #t 插入到一个真实的表中,以便我可以查看数据.数据就在那里. 在查看此数据后,我立即使用自联接进行更新.像这样: 更新 b设置 b.column1 = a.column3从#t a内连接#t b on a.id = b.id; 应该更新的记录没有更 ..
发布时间:2021-09-05 18:31:31 数据库

为什么没有从 SQL Server 中的 tempdb 中删除临时表?

我创建了一个带有 7 个临时表的存储过程,每个临时表在他们自己的工作结束时被删除. 我从一个 Web 服务和我们用于不同实例的相同 Web 服务调用 SP. 我已经强行删除了每个临时表,但是当 SP 执行时,它不会删除位于“tempdb/临时表"中的任何临时表.而且,当我打开应用程序的新实例并尝试执行相同的 SP 时,它将修改相同的临时表. 这给我带来了问题.当SP同时执行时它会 ..
发布时间:2021-09-05 18:31:28 数据库

如何使用 SQL (SQL Server) 将数字列表转换为(临时)表

这是一个例子; 我有数字列表 (1,5,8,36),我希望这些值作为(临时)表行.一种方法是如下 select 1 as n into ##temp联盟选择 5 作为 n联盟选择 8 作为 n联盟选择 36 作为 n 问题是号码列表是动态的.它可以有任何值.所以我需要一种适当的系统方法将这些值转换为临时表行. 解决方案 我经常使用的解决方案... 以 VARCHAR(MAX ..
发布时间:2021-09-05 18:31:26 数据库

SqlDataAdapter.FillSchema 与具有临时表的存储过程

我在这里遇到了类似于这个问题的问题(在运行时显示来自 SQL Server 查询结果的列的数据类型和大小) 没有一个可靠的解决方案. 我想知道是否有人找到了解决方案或变通办法.我可以毫无问题地使用 SqlDataAdapter.Fill(),但是 .FillSchema() 会报告我在存储过程中创建的临时表不存在的错误. 我的目标是能够用来自源的数据和架构填充 DataTable. ..
发布时间:2021-08-30 19:54:45 其他开发

SQL Server 临时表与游标

在 SQL Server 存储过程中何时使用临时表以及何时使用游标.哪个是最好的选择性能明智的? 解决方案 如果可能的话,避免游标就像瘟疫一样.SQL Server 基于集合 - 您需要以 RBAR(逐行痛苦的方式)方式执行的任何操作都将缓慢、缓慢,并且违背 SQL 工作原理的基本原则.> 您的问题非常模糊 - 根据这些信息,我们无法真正判断您要做什么.但主要建议仍然是:只要有可能(并且 ..
发布时间:2021-08-30 19:38:58 其他开发

如何在 SQL Server 中使用 Create 语句创建临时表?

如何像创建普通表一样创建临时表? 示例: CREATE TABLE table_name(column1 数据类型,column2 数据类型,column3 数据类型,....); 解决方案 一个临时表可以有3种,#是最常用的.这是一个仅存在于当前会话中的临时表.与此等效的是 @,一个声明的表变量.这具有较少的“功能"(如索引等),并且也仅用于当前会话.## 与 # 相同,但范围更广, ..
发布时间:2021-08-30 19:38:50 数据库

SQL Server - 如果不存在则创建临时表

在我的 SQL Server 2012 环境中,我创建了一系列存储过程,它们在它们之间传递预先存在的临时表(我在这里尝试了不同的架构,但由于要求/程序). 我想做的是在存储过程中检查是否已经创建了临时表,如果没有,则创建它. 我当前的 SQL 如下所示: IF OBJECT_ID('tempdb..#MyTable') 为空创建表#MyTable(Col1 INT,Col2 VARC ..
发布时间:2021-08-30 19:35:44 数据库

为什么SSIS包创建的全局临时表完成后会消失?

在 ETL 包开始时,以下 SQL 查询针对 SQL Server 2012 数据库运行: IF OBJECT_ID(N'tempdb..##SlotChanges') 不是 NULL开始删除表##SlotChanges结尾创建表##SlotChanges(--剪辑) 然后包将一些行写入临时表,并在写入目标数据库时将其用作最终数据源. 最后没有 drop 命令,因为它只会在下一次运行开始 ..
发布时间:2021-08-27 20:30:21 数据库