exec和临时表

摘要:
exec中的语句可以访问在main方法中创建的临时表。例如,select1asainto#ttexec可以正确返回。但是,如果在exec中创建了临时表,则无法在主程序中访问的#tt中的execselect*将报告错误。找不到#tt,这意味着在退出子方法时,将删除在被调用的子方法中创建的临时表。但是,可以在子方法中访问在父方法中创建的临时表。此规则适用于在存储过程中创建的临时表。如果存储过程调用其他存储过程,则被调用的存储过程也可以访问临时表。

exec中的语句能够访问主方法中创建的临时表

如:

select 1 as a into #tt
exec('select * from #tt')

能正确返回。

但如果在exec中创建了临时表,在主程序中是访问不到的

exec('select 1 as a into #tt')

select * from #tt

将会报错,找不到#tt

也就是说在调用的子方法中创建了临时表,在退出子方法时将会被删除,但是在父方法中创建的临时表,在子方法中可以访问。

该规则适用于在一个存储过程中创建了临时表,如果该存储过程调用了其他的存储过程,这个被调用的存储过程同样可以访问到该临时表。

免责声明:文章转载自《exec和临时表》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇自然语言处理-中文语料预处理cetos7 systemd 详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# Sql 触发器

触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。 Ø 什么是触发器     触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:...

Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库

一:章节前言 本章着眼于影响表中数据存储性能的数据库特性。 表的性能部分取决于在创建之前所应用的数据库特性。例如:在最初创建数据库时采用的物理存储特性以及相关的表空间都会在后来影响表的性能。类似地,表性能还受到最开始选择的物理特性的影响。例如:表类型和数据类型。 因此应用实践中使用的数据库、表空间、和表的创建标准(并将性能问题放在心上),就形成了优化数据...

MySQL性能调优思路

1.MySQL性能调优思路 如果一台服务器出现长时间负载过高 /周期性负载过大,或偶尔卡住如何来处理? 是周期性的变化还是偶尔问题?是服务器整体性能的问题, 还是某单条语句的问题? 具体到单条语句, 这条语句是在等待上花的时间,还是查询上花的时间? 1.1. 监测并观察服务器的状态. 观察服务器状态, 一般用如下2个命令 Show status;...

SQL Server 中的 @、@@、#、## 、N 代表什么,以及SQL系统常用全局变量

SQL中的 @、@@、#、## 、N 代表什么 @ 表示局部变量  @@ 表示全局变量 # 表示本地临时表的名称,以单个数字符号打头;它们仅对当前的用户连接是可见的 ## 表示全局临时表 N 代表存入数据库时以 Unicode 格式存储(双字节),不带N是以普通字符常量存储(单字节)。例如:N'你好'  ---2020.03.17 #本地临时表,以一个...

ThinkPhp框架对“数据库”的基本操作

框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下。 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一、链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写con...

使用ThinkPHP开发中MySQL性能优化的最佳21条经验

使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的S...